Ответы пользователя по тегу Webpack
  • В чем удобство Webpack, кроме подключения одного единственного файла?

    Webpack позволяет загрузить определенный код только если нужен на странице.
    Допустим у вас есть скрипт карусели, которая используется на отдельных страницах, но далеко не на всех и вы не хотите загружать этот код для всех 100 страниц. Webpack позволяет задать условие при котором скрипт будет загружен, а на остальных страницах он загружен не будет. См. require.ensure.
    Можно собрать общий файл, где будут только используемый на всех страницах код... или если он используется определенное количество раз. И отдельно файлы, которые будут подключаться только при необходимости.

    Дополнительно он может убирать неиспользуемый код. Т.е. вы написали какую-либо функцию, но она стала ненужной и ни разу не вызывается - Webpack позволяет проанализировать код и удалить неиспользуемое.
    Можно так же написать
    if (false) {...}
    И webpack удалит этот код, т.к. он никогда не будет исполнятся (допустим это можно использовать для дебага, а вместо false использовать if (isDebage) {}. isDebage задавать извне скрипта). См tree shaking.

    Так же Webpack позволяет обработать как скрипты (например, с помощью babel), так и стили (например, postCSS) и другие ресурсы. В том числе он позволяет в код подключения скрипта добавлять хэш скрипта, что позволяет сбросить кэш у посетителей при обновлении бандла.

    Также есть очень удобный сервер для разработки с горячей перезагрузкой модулей (а не только LR).

    Есть и другие плюшки.
    Ответ написан
    Комментировать
  • Как подружить Webpack + jQuery + jQuery plugins?

    Мне хватило подключить jQuery в plugin

    plugins: [
      new webpack.ProvidePlugin({
        $: "jquery/dist/jquery.min.js",
        jQuery: "jquery/dist/jquery.min.js",
        "window.jQuery": "jquery/dist/jquery.min.js"
      })
    ];

    (взял за основу рецепт отсюда)
    После чего в глобальной области видимости все три варианта вызова jquery будут работать, больше ничего подключать не надо.

    Сам jQuery я скачивал через bower, поэтому дополнительно подключил пути, где будут искаться модули
    resolve: {
            root: ['./bower_components']
        }

    в вашем случае, предполагаю 'bower_components' можно заменить на 'vendor' (путь будет от корня проекта).

    require('../../vendors/jquery.js') внутри blocks\slider\index.js уже не нужен будет, достаточно будет просто подключить файл jquery.slider.js
    Ответ написан
    Комментировать