Командная строка интерфейса
Для правильного использования и лёгкого распространения этой конфигурации, webpack можно настроить с помощью webpack.config.js. Любые параметры, переданные в командную строку, будут сопоставлены с соответствующим параметром в файле конфигурации.
Прочитайте руководство по установке, если у вас ещё нет установленных webpack и CLI.
Использование с файлом конфигурации
webpack [--config webpack.config.js]
См. конфигурацию для вариантов в файле конфигурации.
Использование без файла конфигурации
webpack <entry> [<entry>] -o <output>
<entry>
Имя файла или набор имён файлов, которые служат точкой входа для сборки вашего проекта. Вы можете передать несколько точек входа (каждая точка входа загружается при запуске). Если вы передаёте пару в формате <name>=<request>, вы можете создать дополнительную точку входа. Она будет сопоставлена с параметром конфигурации entry.
<output>
Путь и имя файла для сохранения скомпонованного файла. Он будет сопоставлен с параметрами конфигурации output.path и output.filename.
Пример
Если структура вашего проекта выглядит следующим образом -
.
├── dist
├── index.html
└── src
├── index.js
├── index2.js
└── others.js webpack src/index.js -o dist/bundle.js
Это скомпонует ваш исходный код с точкой входа index.js, а выходной скомпонованный файл будет иметь путь dist, и имя файла будет bundle.js
| Asset | Size | Chunks | Chunk Names |
|-----------|---------|-------------|-------------|
| bundle.js | 1.54 kB | 0 [emitted] | index |
[0] ./src/index.js 51 bytes {0} [built]
[1] ./src/others.js 29 bytes {0} [built] webpack index=./src/index.js entry2=./src/index2.js -o dist/bundle.js
Это сформирует сборку с обоими файлами как отдельными точками входа.
| Asset | Size | Chunks | Chunk Names |
|-----------|---------|---------------|---------------|
| bundle.js | 1.55 kB | 0,1 [emitted] | index, entry2 |
[0] ./src/index.js 51 bytes {0} [built]
[0] ./src/index2.js 54 bytes {1} [built]
[1] ./src/others.js 29 bytes {0} {1} [built] Общие параметры
Обратите внимание, что командная строка интерфейса имеет более высокий приоритет для аргументов, с которыми вы её используете, чем ваш файл конфигурации. Например, если вы передаёте
--mode="production"в webpack CLI, а в вашем файле конфигурации используетсяdevelopment, будет использоватьсяproduction.
Список всех доступных параметров в командной строке
webpack --help webpack -h
Сборка исходного кода с использованием файла конфигурации
Указывает другой файл конфигурации для выбора. Используйте это, если вы хотите указать что-то отличное от webpack.config.js, который является значением по умолчанию.
webpack --config example.config.js
Вывод результата webpack в формате JSON
webpack --json webpack --json > stats.json
Во всех остальных случаях webpack выводит набор статистики, отображающей данные о сборке, пакетах и времени. Используя этот параметр, вывод может быть объектом JSON. Этот ответ принимается инструментом анализа webpack analyse, или инструментом webpack-visualizer от chrisbateman, или инструментом webpack-bundle-analyzer от th0r. Инструмент анализа примет JSON и предоставит все детали сборки в графической форме.
Параметры среды
Когда webpack-конфигурация экспортирует функцию, в неё может быть передан параметр "среда".
webpack --env.production # sets env.production == true webpack --env.platform=web # sets env.platform == "web"
Аргумент --env принимает различные синтаксические формы:
| Вызов | Результирующая среда |
|---|---|
|
| "prod" |
|
| { prod: true } |
|
| { prod: 1 } |
|
| { prod: "foo" } |
|
| { prod: true, min: true } |
|
| [{ prod: true }, "min"] |
|
| {prod: [ "foo", "bar" ]} |
См. руководство по переменным среды для получения дополнительной информации об использовании.
Параметры конфигурации
| Параметр | Описание | Тип ввода | Значение по умолчанию |
|---|---|---|---|
|
Путь к файлу конфигурации | Путь к файлу конфигурации | строка | webpack.config.js или webpackfile.js |
|
Предварительная загрузка одного или нескольких модулей перед загрузкой webpack-конфигурации | Предварительная загрузка одного или нескольких модулей перед загрузкой webpack-конфигурации | массив | |
|
Имя конфигурации для использования | Имя конфигурации для использования | строка | |
|
Среда, передаваемая в конфигурацию, если она функция | Среда, передаваемая в конфигурацию, если она функция | ||
|
Используемый режим, "development" или "production" | Используемый режим, "development" или "production" | строка |
Параметры вывода
Этот набор параметров позволяет управлять определёнными параметрами вывода вашей сборки.
| Параметр | Описание | Тип ввода | Значение по умолчанию |
|---|---|---|---|
|
Имя выходного файла для дополнительных пакетов | Имя выходного файла для дополнительных пакетов | строка | имя файла с [id] вместо [name] или [id] в префиксе |
|
Имя выходного файла сборки | Имя выходного файла сборки | строка | [name].js |
|
Имя функции JSONP, используемой для загрузки пакетов | Имя функции JSONP, используемой для загрузки пакетов | строка | webpackJsonp |
|
Экспонировать экспорт точки входа как библиотеку | Экспонировать экспорт точки входа как библиотеку | строка | |
|
Тип для экспонирования экспорта точки входа как библиотеки | Тип для экспонирования экспорта точки входа как библиотеки | строка | var |
|
Путь вывода для ресурсов сборки | Путь вывода для ресурсов сборки | строка | Текущая директория |
|
Включить комментарий с запросом для каждой зависимости | Включить комментарий с запросом для каждой зависимости | булево | false |
|
Публичный путь к ресурсам | Публичный путь к ресурсам | строка | / |
|
Имя выходного файла для SourceMap | Имя выходного файла для SourceMap | строка | [name].map или [outputFilename].map |
|
Отобразить пользовательский текст после вывода сборки | Отобразить пользовательский текст после вывода сборки | строка | Значение по умолчанию null. Вы можете указать строку, такую как === Build done ===
|
Пример использования
webpack index=./src/index.js index2=./src/index2.js --output-path='./dist' --output-filename='[name][hash].bundle.js'
| Asset | Size | Chunks | Chunk Names |
|--------------------------------------|---------|-------------|---------------|
| index2740fdca26e9348bedbec.bundle.js | 2.6 kB | 0 [emitted] | index2 |
| index740fdca26e9348bedbec.bundle.js | 2.59 kB | 1 [emitted] | index |
[0] ./src/others.js 29 bytes {0} {1} [built]
[1] ./src/index.js 51 bytes {1} [built]
[2] ./src/index2.js 54 bytes {0} [built] webpack.js index=./src/index.js index2=./src/index2.js --output-path='./dist' --output-filename='[name][hash].bundle.js' --devtool source-map --output-source-map-filename='[name]123.map'
| Asset | Size | Chunks | Chunk Names |
|--------------------------------------|---------|-------------|---------------|
| index2740fdca26e9348bedbec.bundle.js | 2.76 kB | 0 [emitted] | index2 |
| index740fdca26e9348bedbec.bundle.js | 2.74 kB | 1 [emitted] | index |
| index2123.map | 2.95 kB | 0 [emitted] | index2 |
| index123.map | 2.95 kB | 1 [emitted] | index |
[0] ./src/others.js 29 bytes {0} {1} [built]
[1] ./src/index.js 51 bytes {1} [built]
[2] ./src/index2.js 54 bytes {0} [built] Параметры отладки
Этот набор параметров позволяет лучше отладить приложение, содержащее ресурсы, скомпилированные с помощью webpack
| Параметр | Описание | Тип ввода | Значение по умолчанию |
|---|---|---|---|
|
Переключить загрузчики в режим отладки | Переключить загрузчики в режим отладки | булево | false |
|
Определить тип карты исходного кода для скомпонованных ресурсов | Определить тип карты исходного кода для скомпонованных ресурсов | строка | - |
|
Отображать прогресс компиляции в процентах | Отображать прогресс компиляции в процентах | булево | false |
|
Отображать подробности об ошибках | Отображать подробности об ошибках | булево | false |
Параметры модулей
Эти параметры позволяют привязывать модули так, как это разрешено webpack
| Параметр | Описание | Использование |
|---|---|---|
|
Привязать расширение файла к загрузчику | Привязать расширение файла к загрузчику | --module-bind js=babel-loader |
|
Привязать расширение файла к загрузчику после обработки | Привязать расширение файла к загрузчику после обработки | |
|
Привязать расширение файла к предварительному загрузчику | Привязать расширение файла к предварительному загрузчику |
Параметры наблюдения
Эти параметры позволяют инструменту сборки отслеживать изменения в файлах графа зависимостей и повторно выполнять сборку.
| Параметр | Описание |
|---|---|
|
Отслеживать изменения в файловой системе | Отслеживать изменения в файловой системе |
|
Таймаут для сбора изменений при отслеживании | Таймаут для сбора изменений при отслеживании |
|
Интервал опроса для отслеживания (также включает опрос) | Интервал опроса для отслеживания (также включает опрос) |
|
Завершить процесс при закрытии стандартного ввода | Завершить процесс при закрытии стандартного ввода |
Параметры оптимизации
Эти параметры позволяют манипулировать оптимизациями для сборки в продакшене с помощью webpack
| Параметр | Описание | Используемый плагин |
|---|---|---|
|
Попытаться удерживать количество фрагментов ниже лимита | Попытаться удерживать количество фрагментов ниже лимита | LimitChunkCountPlugin |
|
Попытаться удерживать размер фрагмента выше лимита | Попытаться удерживать размер фрагмента выше лимита | MinChunkSizePlugin |
|
Минифицировать JavaScript и переключать загрузчики на минификацию | Минифицировать JavaScript и переключать загрузчики на минификацию | TerserPlugin & LoaderOptionsPlugin |
Параметры разрешения
Эти параметры позволяют настроить решатель webpack resolver с псевдонимами и расширениями.
| Параметр | Описание | Пример |
|---|---|---|
|
Настройка псевдонима модуля для разрешения | Настройка псевдонима модуля для разрешения | --resolve-alias jquery-plugin=jquery.plugin |
|
Настройка расширений, которые должны использоваться для разрешения модулей | Настройка расширений, которые должны использоваться для разрешения модулей | --resolve-extensions .es6 .js .ts |
|
Минифицировать JavaScript и переключать загрузчики на минификацию | Минифицировать JavaScript и переключать загрузчики на минификацию |
Параметры статистики
Эти параметры позволяют webpack отображать различные статистические данные и форматировать их по-разному в выводе консоли.
| Параметр | Описание | Тип |
|---|---|---|
|
Принудительное использование цветов в консоли [по умолчанию: включено только для вывода в терминал] | Принудительное использование цветов в консоли [по умолчанию: включено только для вывода в терминал] | boolean |
|
Принудительное отключение цветов в консоли | Принудительное отключение цветов в консоли | boolean |
|
Выбор предустановки отображения статистических данных (verbose, detailed, normal, minimal, errors-only, none; с версии webpack 3.0.0) | Выбор предустановки отображения статистических данных (verbose, detailed, normal, minimal, errors-only, none; с версии webpack 3.0.0) | string |
|
Отображать также кэшированные модули в выводе | Отображать также кэшированные модули в выводе | boolean |
|
Отображать также кэшированные ресурсы в выводе | Отображать также кэшированные ресурсы в выводе | boolean |
|
Отображать фрагменты в выводе | Отображать фрагменты в выводе | boolean |
|
Отображать расстояние от точки входа для каждого модуля | Отображать расстояние от точки входа для каждого модуля | boolean |
|
Отображать точки входа в выводе | Отображать точки входа в выводе | boolean |
|
Отображать подробности об ошибках | Отображать подробности об ошибках | boolean |
|
Исключать модули из вывода | Исключать модули из вывода | boolean |
|
Установить максимальное количество отображаемых модулей в выводе | Установить максимальное количество отображаемых модулей в выводе | number |
|
Отображать даже исключенные модули в выводе | Отображать даже исключенные модули в выводе | boolean |
|
Триггер отката поднятия области видимости (с версии webpack 3.0.0) | Триггер отката поднятия области видимости (с версии webpack 3.0.0) | boolean |
|
Отображать происхождение фрагментов в выводе | Отображать происхождение фрагментов в выводе | boolean |
|
Отображать информацию об экспортах, предоставляемых модулями | Отображать информацию об экспортах, предоставляемых модулями | boolean |
|
Отображать причины включения модуля в выводе | Отображать причины включения модуля в выводе | boolean |
|
Отображать информацию об используемых экспортах в модулях (удаление по дереву) | Отображать информацию об используемых экспортах в модулях (удаление по дереву) | boolean |
|
Скрыть информацию о модулях | Скрыть информацию о модулях | boolean |
|
Сортировать список ресурсов по свойству в ресурсе | Сортировать список ресурсов по свойству в ресурсе | string |
|
Сортировать список фрагментов по свойству в фрагменте | Сортировать список фрагментов по свойству в фрагменте | string |
|
Сортировать список модулей по свойству в модуле | Сортировать список модулей по свойству в модуле | string |
|
Показать больше деталей | Показать больше деталей | boolean |
Дополнительные параметры
| Параметр | Описание | Использование |
|---|---|---|
|
Прервать компиляцию при первой ошибке | Прервать компиляцию при первой ошибке | |
|
Включить кэширование в памяти [Включено по умолчанию для отслеживания] | Включить кэширование в памяти [Включено по умолчанию для отслеживания] | --cache=false |
|
Определить любую свободную переменную, см. shimming | Определить любую свободную переменную, см. shimming | --define process.env.NODE_ENV="'development'" |
|
Включает горячую замену модулей | Включает горячую замену модулей | --hot=true |
|
Включает модули с метками [Использует LabeledModulesPlugin] | Включает модули с метками [ Использует LabeledModulesPlugin ] | |
|
Включает моментальную перезагрузку | Включает моментальную перезагрузку | --live-reload=true |
|
Загрузить этот плагин | Загрузить этот плагин | |
|
Предварительно загрузить определенный файл | Предварительно загрузить определенный файл | --prefetch=./files.js |
|
Предоставить эти модули в качестве глобальных, см. shimming | Предоставить эти модули в качестве глобальных, см. shimming | --provide jQuery=jquery |
|
Путь к файлу записей (чтение) | Путь к файлу записей (чтение) | |
|
Путь к файлу записей (запись) | Путь к файлу записей (запись) | |
|
Путь к файлу записей | Путь к файлу записей | |
|
Целевая среда выполнения | Целевая среда выполнения | --target='node' |
Сокращения
| Сокращение | Заменяет |
|---|---|
| -d
| --debug --devtool cheap-module-eval-source-map --output-pathinfo |
| -p
|
--optimize-minimize --define process.env.NODE_ENV="production" , см. сборку для производства
|
Профилирование
Опция --profile собирает временную информацию для каждого шага компиляции и включает её в вывод.
webpack --profile
⋮
[0] ./src/index.js 90 bytes {0} [built]
factory:22ms building:16ms = 38ms Для каждого модуля в выводе, применимо, отображаются следующие детали:
-
factory: время сбора метаданных модуля (например, разрешение имени файла) -
building: время построения модуля (например, загрузчики и синтаксический разбор) -
dependencies: время определения и соединения зависимостей модуля
В паре с --progress, --profile даёт вам глубокое понимание того, какой шаг компиляции занимает сколько времени. Это может помочь вам оптимизировать сборку более информированно.
webpack --progress --profile 30ms building modules 1ms sealing 1ms optimizing 0ms basic module optimization 1ms module optimization 1ms advanced module optimization 0ms basic chunk optimization 0ms chunk optimization 1ms advanced chunk optimization 0ms module and chunk tree optimization 1ms module reviving 0ms module order optimization 1ms module id optimization 1ms chunk reviving 0ms chunk order optimization 1ms chunk id optimization 10ms hashing 0ms module assets processing 13ms chunk assets processing 1ms additional chunk assets processing 0ms recording 0ms additional asset processing 26ms chunk asset optimization 1ms asset optimization 6ms emitting ⋮
© JS Foundation and other contributors
Licensed under the Creative Commons Attribution License 4.0.
https://v4.webpack.js.org/api/cli