jQuery с WordPress и Webpack - PullRequest
       3

jQuery с WordPress и Webpack

0 голосов
/ 02 января 2019

Я только что установил Webpack в WordPress-теме.

В теме используется Bootstrap, и в этом отношении bootstrap.min.js ранее загружался следующим образом:

wp_enqueue_script( 'bootstrapjs', get_stylesheet_directory_uri() . '/assets/js/bootstrap.min.js', array( 'jquery' ) );

В WordPress запечен jQuery, поэтому, указав jquery какзависимость, это работает, и все счастливы.

Однако сейчас я пытаюсь использовать Webpack.Я все еще привыкаю к ​​этому, и у меня сложилось впечатление, что это хороший стиль - собрать как можно больше сценариев в один, чтобы ограничить запрос, который сервер должен сделать, чтобы получить все ресурсы.

Итак, я разорван ... Не могу ли я

РЕШЕНИЕ 1) Не компилировать Bootstrap.min.js, используя Webpack .... И просто поместите этот файл прямо в папку assets и поставьте его в очередь (полностью обходя Webpack). Upside: Я могу просто использовать WordPress 'jQuery, так что его не нужно загружать дважды (что также может вызвать проблемы). Недостатки: Беспорядочная файловая структура, поскольку некоторые файлы загружаются через Webpack, а некоторые - нет.Это также приведет к увеличению количества файлов (больше запросов к серверу).

РЕШЕНИЕ 2) Скомпилируйте Bootstrap.min.js, используя Webpack .Это требует, чтобы я импортировал jquery и popper, поэтому я могу потребовать файл Bootstrap.min.js без получения ошибки. Upside: Лучшая файловая структура и меньшее количество файлов, которые сервер должен запросить. Недостаток: Jquery необходимо загрузить дважды (что может привести к путанице).И это также может привести к увеличению размера файла.

1 Ответ

0 голосов
/ 14 января 2019

Я только что понял, что могу просто отменить регистрацию jQuery, используя это:

function custom_head_cleanup(){
  if( ! is_admin() ){
    wp_deregister_script( 'jquery' ); 
  }
}
add_action( 'init', 'custom_head_cleanup' );

Я предполагаю, что я тогда использую решение 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...