Concaténer et réduire les dépendances pour les fichiers JavaScript mis en file d'attente

8

Je charge un fichier JavaScript à l'aide de wp_enqueue_scriptmon thème. Cependant, avec cela, je charge également plusieurs fichiers jQuery, ainsi que des dépendances pour le script mis en file d'attente (qui a déjà été concaténé et minimisé par Grunt). Voici mon code:

add_action('wp_enqueue_scripts', function() {
    wp_enqueue_script( 'customscripts', get_template_directory_uri() . '/assets/js/main.min.js', array('jquery', 'jquery-form', 'json2', 'jquery-ui-autocomplete'), NULL, true );
});

Pour le tableau des dépendances, comment procéder pour concaténer et réduire ces dépendances jQuery? J'essaie de charger mon site le plus rapidement possible, et moins il y a de fichiers JS à charger, mieux c'est. Aussi, s'il était possible de les faire charger de manière asynchrone (en utilisant la asyncpropriété des <script>balises), ce serait un as.

Je préfère le faire sans utiliser de plugin mais j'utiliserai un plugin si nécessaire.

Merci pour toute aide :)

Tom Oakley
la source
3
Les fichiers javascript tiers doivent être enregistrés / mis en file d'attente par les plugins tels quels; non concaténé, modifié ou avec un autre nom. De cette façon, s'il y a plus d'un plugin / thème qui utilise le même js tiers, Wordpress ne chargera pas plusieurs instances du même code. Pour profiter de cette gestion et de cette concaténation, la concaténation doit être effectuée à la volée combinée à un système de cache pour éviter de concaténer les fichiers à chaque visite. Je pense que ce travail est trop pour une réponse ici. Jetez un oeil à W3 Total Cache; ce plugin concatène, réduit, met en cache le résultat et charge les fichiers js asynchrones.
cybmeta
Tout comme @cybmeta le dit, W3 Total Cache fait le travail, mais soyez prudent avec les fichiers js concaténés. Certains scripts ne sont pas prêts à être "ensemble" dans les mêmes fichiers. Mais détendez-vous aussi, les modifications de W3 Total Cache sont toutes réversibles.
Rangel R. Morais
hé, merci d'avoir répondu, W3 Total Cache fonctionne assez bien pour la concaténation, etc., merci pour la suggestion (et @cybmeta) :)
Tom Oakley
hé, merci d'avoir répondu et désolé d'avoir oublié de répondre. W3 Total Cache fonctionne très bien pour le moment, et votre explication pourquoi WordPress ne le fait pas est tout à fait logique. Merci!
Tom Oakley
1
Ce plugin est également agréable si pour une raison quelconque vous ne voulez pas ou n'avez pas besoin du cache total W3 wordpress.org/plugins/autoptimize
NickFMC

Réponses:

1

W3 Total Cache offre une minification JS / CSS. Je ne connais pas le processus qu'ils utilisent, mais si vous voulez éviter d'utiliser un plugin, vous pouvez jeter un œil à leur code source comment ils le gèrent.

Eric Holmes
la source