Первый показ веб-пакетаОфициальный сайт, что может вебпак? Ответ, данный официальным сайтом, в одном предложении, сделайте все просто!
Всевозможные загрузчики появляются бесконечным потоком, что делает нас перегруженными при сборке.Здесь мы подведем итоги полного анализа загрузчиков.
концепция
Загрузчик, как следует из названия, загрузчик, английское объяснение выглядит следующим образом:
Загрузчики — это преобразования, которые применяются к исходному коду модуля. Они позволяют предварительно обрабатывать файлы по мере их импорта или «загрузки». Таким образом, загрузчики похожи на «задачи» в других инструментах сборки и предоставляют мощные способ обработки этапов сборки интерфейса. Загрузчики могут преобразовывать файлы с другого языка (например, TypeScript) в JavaScript или встроенные изображения в URL-адреса данных. Загрузчики даже позволяют вам делать такие вещи, как импорт файлов CSS непосредственно из ваших модулей JavaScript!
Китайский перевод:
Загрузчик используется для преобразования исходного кода модуля. Загрузчики позволяют предварительно обрабатывать файлы при импорте или «загрузке» модулей. Таким образом, загрузчики похожи на «задачи» в других инструментах сборки и предоставляют мощный способ обработки этапов сборки внешнего интерфейса. Загрузчики могут преобразовывать файлы с разных языков (например, TypeScript) в JavaScript или преобразовывать встроенные изображения в URL-адреса данных. Загрузчик даже позволяет импортировать файлы CSS прямо в модули JavaScript!
Из этого мы видим мощную роль загрузчика, проанализируем:
- Роль конверсии. Все файлы, используемые при разработке, конвертируются в файлы необходимого формата, такие как html+css+js+img, необходимые для загрузки веб-страницы.
- Объектом преобразования является исходный код. Загрузчик только конвертирует исходный код.Что касается других функций, плагины приходят, чтобы получить то, что он не может.
Подводя итог предложению: погрузчик, загрузочная машина, похож на машину для производства соевого молока, положите на нее сырье, и она начнет работать всерьез!
Три способа использования загрузчика
Существует три способа использования загрузчиков в вашем приложении:
- Конфигурация (рекомендуется): укажите загрузчик в файле webpack.config.js.
module.rules позволяет указать несколько загрузчиков в конфигурации вашего веб-пакета. Это краткий способ показать загрузчик и помогает поддерживать чистоту кода. Также дает вам глобальный обзор каждого загрузчикаmodule: { rules: [ { test: /\.css$/, use: [ { loader: 'style-loader' }, { loader: 'css-loader', options: { modules: true } } ] } ] }
- Встроенный: явно укажите загрузчик в каждом операторе импорта.
Загрузчики могут быть указаны в операторе импорта или любом эквиваленте «импорта». Используйте !, чтобы разделить загрузчики в ресурсах. Каждая отделенная часть разрешается относительно текущего каталога.
При добавлении всех правил и использовании ! любой загрузчик в конфигурации может быть соответствующим образом переопределен.import Styles from 'style-loader!css-loader?modules!./styles.css';
- CLI: укажите их в командах оболочки.
Вы также можете использовать загрузчик через CLI:
При этом используется jade-loader для файлов .jade и style-loader и css-loader для файлов .css.webpack --module-bind jade-loader --module-bind 'css=style-loader!css-loader'
Особенности загрузчика
- Пропуск цепи поддержки
- Может быть синхронным или асинхронным
- Работает в Node.js и может делать все возможное
- Получить параметры запроса. Используется для передачи конфигурации загрузчику
- Также можно настроить с помощью объекта параметров
- Помимо использования общего основного свойства package.json, вы также можете экспортировать обычные модули npm в качестве загрузчика, определив поле загрузчика в package.json.
- Плагины могут добавить больше возможностей в загрузчик
- загрузчик может генерировать дополнительные произвольные файлы
с помощью загрузчика (загрузчика) функций предварительной обработки, возможность предоставить больше экосистемы JavaScript. Теперь пользователи могут более гибко вводить детализированную логику, такую как сжатие, упаковка, языковой перевод и т. д.
Пожарный погрузчик
Загрузчики следуют стандартному разрешению модуля. В большинстве случаев загрузчик будет разрешаться из пути к модулю (обычно путь к модулю рассматривается как npm install, node_modules).
Модуль загрузчика необходимо экспортировать как функцию и написать на языке js, совместимом с Node.js. Обычно это управляется с помощью npm, но также возможно иметь собственные загрузчики в виде файлов в приложении. По соглашению загрузчики обычно называются xxx-loader (например, json-loader).
Часто используемые загрузчики
webpack может использовать загрузчики для предварительной обработки файлов. Это позволяет вам упаковывать любые статические ресурсы, кроме js. Вы можете легко написать свои собственные загрузчики, используя Node.js.
- babel-loader
This package allows transpiling JavaScript files using Babel and webpack.
Загрузите код ES2015+ и транспилируйте его в ES5 с помощью Babel.
Установить:npm install --save-dev babel-loader babel-core babel-preset-env webpack
использовать:{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }
- style-loader
Adds CSS to the DOM by injecting a <style> tag
Добавьте экспорт модуля в DOM в виде стилей.
Установить:npm install style-loader --save-dev
Рекомендуется использовать с css-loader
использовать:{ test: /\.css$/, use: [ 'style-loader', 'css-loader' ] }
- css-loader
После синтаксического анализа файла CSS используйте импорт для загрузки и возврата кода CSS.
Установить:npm install css-loader --save-dev
использовать:{ test: /\.css$/, use: [ 'style-loader', 'css-loader' ] }
- less-loader
Загружать и переводить меньше файлов
Установить:npm install --save-dev less-loader less
использовать:{ test: /\.less$/, exclude: /node_modules/, use: ExtractTextPlugin.extract(['css-loader', 'less-loader']) }
- url-loader
Loads files as base64 encoded URL
Обрабатывает файлы изображений, но может возвращать URL-адрес данных, если файл меньше ограничения
Установить:npm install --save-dev url-loader
использовать:{ test: /\.(jpg|jpeg|png|gif)$/, loader: 'url-loader', options: { limit: 8192 } }
- file-loader
Instructs webpack to emit the required object as file and to return its public URL
Обработать шрифт/svg и т. д., отправить файл в выходную папку и вернуть (относительный) URL-адрес
Установить:npm install file-loader --save-dev
использовать:{ test: /\.(woff|woff2|svg|eot|ttf)$/, use: 'file-loader' }
- vue-loader
Загрузка и транспиляция компонентов Vue
Установить:npm install --save-dev vue-loader vue vue-template-compiler
использовать:{ test: /\.vue$/, loader: 'vue-loader', options: { loaders: { less: ExtractTextPlugin.extract({ use: ['css-loader', 'less-loader'], fallback: 'vue-style-loader' }) } } }
- postcss-loader
Загрузка и транспиляция файлов CSS/SSS с помощью PostCSS
Установить:npm i -D postcss-loader
использовать:
Настроено в webpack.config.js
На данный момент, пожалуйста, переместите о параметрах, используемых в погрузчикеОфициальный сайтВопрос решен, спасибо за проверку!{ test: /\.sss$/, use: [ ..., { loader: 'postcss-loader', options: { parser: 'sugarss' } } ] }