Мы рассмотрим базовую настройку Webpack для вашего приложения JavaScript. Иногда Webpack может быть головной болью при настройке, и многие люди могут пропустить его настройку и выбрать уже созданные шаблоны, для которых уже все уже настроено.
Итак, давайте познакомимся с базовым пониманием того, как работает Webpack, как его настроить и что он может сделать для нас как разработчиков. Начнем с создания пустого проекта в нашем терминале.
mkdir javascript-webpack-setup
Перейдите во вновь созданный пустой проект.
cd javascript-webpack-setup
Давайте откроем проект в нашем любимом редакторе кода. Для этой настройки я использую код Visual Studio.
В терминале давайте перейдем в корень нашего проекта и создадим файл package.json
для проекта, выполнив следующую команду.
npm init -y
Это наш файл package.json
.
Вернемся к терминалу, давайте продолжим и установим веб-пакет, выполнив команду ниже.
npm install --save-dev webpack webpack-cli
Папка нашего проекта теперь содержит файл package-lock.json
и папку node_modules
. Создайте файл webpack.config.js
в папке нашего проекта и добавьте самую базовую конфигурацию.
webpack.config.js
включает точку входа, которая представляет собой файл JavaScript, из которого будет считываться webpack. Точка вывода — это место, где webpack будет объединять все файлы проекта JavaScript, помещая их в указанную папку и файл.
Создайте папку src
и добавьте в нее файл index.js
. В index.js
добавьте простой скрипт, как показано ниже.
В подскриптах package.json
добавьте "build": "webpack"
, как показано ниже.
Теперь мы продолжим и запустим npm run build
в терминале.
Когда мы проверяем наш недавно созданный bundle.js
, мы видим, что наш код был упакован внутри папки dist
.
Мы можем избавиться от предупреждения режима конфигурации, добавив mode: "development",
в webpack.config.js
, как показано ниже.
Наш следующий шаг — добавить файл .html
с помощью плагина html webpack, и мы собираемся установить его, запустив npm i --save-dev html-webpack-plugin
в терминале.
В файле webpack.config.js
импортируйте подключаемый модуль html, добавив const HtmlWebpackPlugin = require('html-webpack-plugin');
и new HtmlWebpackPlugin()
в разделе подключаемые модули. Таким образом, наш файл становится таким, как показано ниже.
Запустим в терминале npm run build
и увидим, что файл index.html
создан в папке dist
.
С этой настройкой каждый раз, когда мы вносим изменения в файл, будет необходимо запускать npm run build
каждый раз. Поэтому нам нужно будет установить плагин webpack-dev-server, чтобы снять с себя часть этого разочарования.
В терминале запустим npm install webpack-dev-server --save-dev
. Это помогает нам перезагружать наш index.html
каждый раз при обнаружении изменений. В package.json
под скриптами добавить "start": "webpack-dev-server"
.
В webpack.config.js
добавьте devServer: { open: true }
, как показано ниже.
Запустите npm run start
в терминале. Что происходит, так это то, что когда вы пытаетесь внести изменения в файлы .js
, браузер загружает их в режиме реального времени при их сохранении.
Пришло время добавить в проект HTML-шаблон с помощью HtmlWebpackPlugin в webpack.config.js
, как показано ниже.
Создайте template.html
внутри папки src
.
Когда мы запускаем npm run build
, мы видим, что webpack получает код template.html
и внедряет его в index.html
в папке dist
.
Чтобы сохранить нашу папку dist
в чистоте, мы должны установить подключаемый модуль clean-webpack, который удалит все ненужные файлы. Запустите npm install --save-dev clean-webpack-plugin
в терминале.
В файле webpack.config.js
мы должны импортировать плагин, добавив const { CleanWebpackPlugin } = require('clean-webpack-plugin);
и new CleanWebpackPlugin()
в наш список плагинов, как показано ниже.
Наш последний шаг — загрузить CSS в наш проект. Нам нужно будет добавить css-loader
и style-loader
. Давайте запустим следующие команды, чтобы установить их.
npm install --save-dev css-loader npm install --save-dev style-loader
В webpack.config.js
давайте добавим ключ модуля, как показано ниже.
Наконец, нам нужно создать файл style.css
в папке src
и импортировать файл CSS в наш файл JavaScript.
В случае каких-либо ошибок перезапустите сервер с npm run start
и пересоберите проект с npm run build
.
Итак, это базовая конфигурация и начальный шаблон для любого проекта JavaScript, и, надеюсь, это поможет вам начать работу с webpack.