Установка Webpack — первый этап подготовки среды сборки frontend-приложения. От способа установки зависит:
Webpack может устанавливаться:
На практике эти способы используются для разных задач и имеют принципиальные отличия.
После установки в проекте появляются:
webpack;webpack-cli;npx или npm scripts.Webpack не является самостоятельной программой вне экосистемы Node.js. Он работает как npm-пакет и управляется через менеджер пакетов:
Для установки необходим установленный Node.js.
Проверка версии Node.js:
node -v
Проверка npm:
npm -v
Webpack 5 требует современную версию Node.js. Старые версии Node могут вызывать:
Перед локальной установкой создаётся каталог проекта.
Пример:
mkdir webpack-project
cd webpack-project
После этого выполняется инициализация npm:
npm init -y
Файл package.json становится центральной точкой
управления зависимостями проекта.
Пример минимального package.json:
{
"name": "webpack-project",
"version": "1.0.0"
}
Локальная установка помещает Webpack внутрь проекта.
Пакеты сохраняются в:
node_modules/
Информация о зависимостях записывается в:
package.json
Именно локальная установка считается стандартом современной frontend-разработки.
Минимальный набор включает два пакета:
npm install webpack webpack-cli --save-dev
Или сокращённо:
npm i webpack webpack-cli -D
Пакет webpack содержит механизм сборки.
Пакет webpack-cli предоставляет:
Без webpack-cli команды вроде:
npx webpack
не будут работать корректно.
Webpack относится к инструментам разработки, а не runtime-зависимостям.
Поэтому он записывается в раздел:
"devDependencies"
Пример:
{
"devDependencies": {
"webpack": "^5.102.0",
"webpack-cli": "^6.0.1"
}
}
Такие зависимости:
После установки структура проекта становится примерно такой:
project/
├── node_modules/
├── package.json
├── package-lock.json
Файл lock-зависимостей:
При локальной установке бинарные файлы помещаются в:
node_modules/.bin/
Например:
node_modules/.bin/webpack
Именно поэтому npm scripts могут запускать Webpack без глобальной установки.
Современный стандарт запуска:
npx webpack
Команда npx:
Это критически важно для согласованности версий.
Чаще всего Webpack запускается через scripts.
Пример:
{
"scripts": {
"build": "webpack",
"dev": "webpack --mode development"
}
}
Запуск:
npm run build
или:
npm run dev
Каждый проект использует собственную версию Webpack.
Это позволяет:
Команда разработчиков получает одинаковую конфигурацию.
После выполнения:
npm install
все получают идентичный набор пакетов.
Системы непрерывной интеграции работают именно с локальными зависимостями.
Например:
Проект не требует:
Обновление Webpack затрагивает только текущий проект.
Другие приложения остаются неизменными.
Webpack имеет большое дерево зависимостей.
Папка node_modules может занимать сотни мегабайт.
Каждый проект хранит собственную копию Webpack.
Это увеличивает расход дискового пространства.
Прямой запуск требует:
npx webpack
вместо простой команды:
webpack
Глобальная установка делает пакет доступным во всей системе.
Команда:
npm install -g webpack webpack-cli
После этого Webpack можно запускать из любого каталога:
webpack
Расположение зависит от ОС и менеджера Node.js.
Типичные пути:
C:\Users\Username\AppData\Roaming\npm
/usr/local/lib/node_modules
или:
~/.npm-global
Проверка версии:
webpack -v
или:
webpack --version
Webpack доступен в терминале без npx.
Подходит для:
Одна глобальная установка может использоваться многими проектами.
Разные проекты могут требовать разные версии Webpack.
Глобальная установка создаёт проблему совместимости.
Например:
Одновременно использовать обе версии через глобальный пакет неудобно.
Проект начинает зависеть от системы разработчика.
На другой машине Webpack может:
Серверы сборки обычно не используют глобальные пакеты.
Это нарушает воспроизводимость.
Невозможно гарантировать, что у всей команды одинаковая версия Webpack.
Обновление глобального Webpack влияет сразу на все проекты.
Это может ломать старые конфигурации.
Современная экосистема JavaScript ориентирована на:
Поэтому практически все production-проекты используют локальную установку.
Глобальная установка чаще применяется:
| Характеристика | Локальная | Глобальная |
|---|---|---|
| Изоляция версий | Да | Нет |
| Подходит для production | Да | Ограниченно |
| Работает в CI/CD | Да | Нежелательно |
| Доступность команды webpack | Через npx/npm scripts | Глобально |
| Совместимость между проектами | Высокая | Низкая |
| Зависимость от окружения | Минимальная | Высокая |
| Простота запуска | Средняя | Высокая |
| Контроль версий | Полный | Ограниченный |
Иногда требуется фиксированная версия.
Пример:
npm install webpack@5.98.0 webpack-cli@5.1.4 --save-dev
Это необходимо:
Локальная версия:
npx webpack --version
Глобальная версия:
webpack --version
npm uninstall webpack webpack-cli
npm uninstall -g webpack webpack-cli
Локальная установка:
yarn add webpack webpack-cli --dev
Глобальная установка:
yarn global add webpack webpack-cli
Локальная установка:
pnpm add webpack webpack-cli -D
Глобальная установка:
pnpm add -g webpack webpack-cli
Иногда Webpack установлен, но CLI отсутствует.
Типичная ошибка:
CLI for webpack must be installed.
Решение:
npm install webpack-cli --save-dev
Часто возникает в Linux/macOS при глобальной установке.
Неправильный подход:
sudo npm install -g webpack
Лучше использовать:
Причины:
Некоторые loader-пакеты требуют конкретную версию Node.js.
Проверка:
node -v
Иногда помогает полная переустановка:
rm -rf node_modules
rm package-lock.json
npm install
Наиболее распространённая последовательность:
npm init -y
npm install webpack webpack-cli --save-dev
{
"scripts": {
"build": "webpack",
"watch": "webpack --watch"
}
}
npm run build
До появления npx глобальная установка использовалась
значительно чаще.
Сейчас npx решает большинство проблем:
Поэтому сочетание:
npm install webpack webpack-cli -D
и:
npx webpack
стало фактическим стандартом разработки на Webpack.