Concatene e reduza dependências para arquivos JavaScript enfileirados

8

Estou carregando um arquivo JavaScript usando wp_enqueue_scriptno meu tema. No entanto, junto com ele, também estou carregando vários arquivos jQuery, como dependências para o script enfileirado (que já foi concatenado e minificado pelo Grunt). Aqui está o meu código:

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 );
});

Para a matriz de dependências, como concatenar e minificar essas dependências do jQuery? Estou tentando fazer com que meu site seja carregado o mais rápido possível, e quanto menos arquivos JS for necessário, melhor. Além disso, se fosse possível fazê-los carregar de forma assíncrona (usando a asyncpropriedade para <script>tags), isso seria aceitável.

Prefiro fazê-lo sem usar um plug-in, mas usarei um plug-in, se necessário.

Obrigado por qualquer ajuda :)

Tom Oakley
fonte
3
Arquivos javascript de terceiros devem ser registrados / enfileirados por plugins como estão; não concatenado, modificado ou com outro nome. Dessa forma, se houver mais de um plugin / tema que use os mesmos js de terceiros, o Wordpress não carregará várias instâncias do mesmo código. Para tirar proveito desse gerenciamento e concatenação, a concatenação deve ser feita em tempo real combinada com um sistema de cache para evitar concatenar os arquivos para cada visita. Eu acho que este trabalho é demais para uma resposta aqui. Dê uma olhada no W3 Total Cache; esse plug-in concatena, minimiza, armazena em cache o resultado e carrega arquivos js assíncronos.
cybmeta
Assim como @cybmeta diz, o W3 Total Cache faz o trabalho, mas tenha cuidado com os arquivos js concatenados. Alguns scripts não estão preparados para serem "juntos" nos mesmos arquivos. Mas relaxe também, as alterações no cache total do W3 são todas reversíveis.
Rangel R. Morais
hey, obrigado por responder, W3 Total Cache está funcionando muito bem para concatenar etc, obrigado pela sugestão (e @cybmeta) :)
Tom Oakley
ei, obrigado por responder e desculpe, esqueci de responder. O W3 Total Cache funciona bem agora, e sua explicação para o motivo pelo qual o WordPress não faz isso faz todo o sentido. Obrigado!
21414 Tom Oakley
1
Este plugin também é bom, se por algum motivo você não quer ou precisa W3 Total Cache wordpress.org/plugins/autoptimize
NickFMC

Respostas:

1

O W3 Total Cache oferece minificação JS / CSS. Eu não estou familiarizado com o processo que eles usam, mas se você quiser evitar o uso de um plug-in, pode dar uma olhada no código-fonte deles como eles lidam com isso.

Eric Holmes
fonte