
При написании кода в src вводится js-файл. После упаковки веб-пакета формируется входной файл. В этом случае имя и путь к js-файлу в html неверны, поэтому веб-пакет. необходимо упаковать и упаковать html-файл. Был заменен путь к импортированному js-файлу.
Преимущества использования веб-пакета для упаковки html:
(1) Упакованный js-файл может быть автоматически добавлен в html
(2) После упаковки html он все равно будет сгенерирован в папке сборки и объединен с упакованным js-файлом. чтобы при выходе в Интернет вам нужно было только скопировать папки, созданные при упаковке, в онлайн-среду
(3). Это поможет нам сжать html-файлы.
1. Установите плагин
Webpack изначально
.может понимать только файлы JS и JSON и должен поддерживать упаковку других файлов. Для всех типов файлов необходимо установить соответствующий плагин или загрузчик.
Если нам нужно упаковать HTML-файлы, нам сначала нужно установить плагин html-webpack-plugin :
npm install html-webpack-plugin -D
Роль этого плагина:
создать html-файл в разделе экспорта по умолчанию, а затем импортируйте все ресурсы JS/CSS.
Мы также можем самостоятельно указать html-файл и добавить ресурсы в этот html-файл.
После установки плагина html-webpack-plugin вам необходимо выполнить
настройку.
настройте его в файле webpack.config.js :
// ...
// 1. Внедряем плагин const HtmlWebpackPlugin = require('html-webpack-plugin');
модуль.экспорт = {
// ...
// 2. Настраиваем плагины плагина в плагинах: [
новый HtmlWebpackPlugin({
template: 'index.html', // Указываем файл шаблона записи (относительно корневого каталога проекта)
имя файла: 'index.html', // Указываем имя и местоположение выходного файла (относительно выходного каталога)
// Остальные элементы настройки плагина можно посмотреть в официальной документации плагина})
]
} Ссылка на подробную конфигурацию: https://www.npmjs.com/package/html-webpack-plugin.
Убедитесь, что путь и имя файла шаблона записи соответствуют конфигурации, а затем можно скомпилировать.
3. При настройке нескольких записей JS и нескольких ситуаций HTML
необходимо скомпилировать несколько файлов HTML, и файлы необходимо импортировать разные файлы JS. Однако по chunk упакованный файл HTML будет импортировать все упакованные файлы JS. указан для распространения JS.
константный путь = требуется ('путь');
// 1. Внедряем плагин const HtmlWebpackPlugin = require('html-webpack-plugin');
модуль.экспорт = {
// ...
// 2. Настройка записи JS (несколько записей)
вход: {
поставщик: ['./src/jquery.min.js', './src/js/common.js'],
индекс: './src/index.js',
корзина: './src/js/cart.js'
},
//Настраиваем вывод экспорта: {
имя файла: '[имя].js',
путь: path.resolve(__dirname, 'build/js')
},
// 3. Настраиваем плагины: [
новый HtmlWebpackPugin({
шаблон: 'index.html',
имя файла: 'index.html',
// Используйте чанк, чтобы указать, какие JS-файлы импортировать чанк: ['index', 'vendor']
}),
// Сколько HTML нужно скомпилировать, сколько новых плагинов нужно new HtmlWebpackPlugin({
шаблон: './src/cart.html',
имя файла: 'cart.html',
кусок: ['корзина', 'продавец']
})
]
} Совет: Здесь необходимо отметить, сколько HTML-файлов вам нужно скомпилировать, сколько раз вам нужно создать новый
HtmlWebpackPlugin.
После успешной компиляции приведенной выше конфигурации результат будет следующим:
build
|__ index.html #Представляем index.js иvendor.js
|__ cart.html #Представляем cart.js иvendor.js
|__ js
|__vendor.js # Создано с помощью jquery.min.js и common.js |__ index.js # Создано с помощью index.js |__ cart.js # Создано с помощью cars.js для 1, webpack. config.js Configuration
const HTMLWebpackPlugin = require('html-webpack-plugin')
...
плагины: [
// html-webpack-plugin конфигурация упаковки html Этот плагин сгенерирует для вас файл HTML5 new HTMLWebpackPlugin({
template: "./index.html", // Относительный или абсолютный путь к шаблону (цель упаковки)
title: 'Home', // Заголовок, используемый для сгенерированного хеша HTML-документа: true, //true добавляет уникальный хэш компиляции веб-пакета ко всем включенным скриптам и файлам CSS. В основном используется для очистки кэша,
минимизировать: { // Сжимаем HTML
коллапсWhitespace: true, // Свернуть пустое пространство KeepClosingSlash: true, // Сохранять закрытые пробелы RemoveComments: true, // Удалить комментарии removeRedundantAttributes: true, // Удалить избыточные атрибуты removeScriptTypeAttributes: true, // Удалить атрибуты типа скрипта «Скрипт» RemoveStyleLinkTypeAttributes: true, // Удаляем атрибут типа ссылки стиля useShortDoctype: true, // Используем тип короткого документа saveLineBreaks: true, // Сохраняем разрывы строк minifyCSS: true, // Сжимаем CSS в тексте
minifyJS: true, // Сжимаем текстовые js
}
}),
],
... 2. На данный момент наш index.html
<!DOCTYPE html>
<html язык="">
<голова>
<мета-кодировка="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Демо-версия веб-пакета</title>
</голова>
<тело>
<div id="приложение">
конфигурация упаковки html</div>
</тело>
</html> 3. На данный момент наш index.js
импортирует «./../css/index.less»
функция add(x,y) {
вернуть х+у
}
console.log(add(2,3)); 3. Введите пакет в веб-пакет консоли и обнаружите, что выходной файл пакета имеет дополнительный index.html, его содержимое выглядит следующим образом:
<!DOCTYPE html>
<html язык="">
<голова>
<мета-кодировка="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Демо-версия веб-пакета</title>
<script defer src="index.js"></script></head>
<тело>
<div id="приложение">
конфигурация упаковки html</div>
</тело>
</html> <script defer="" src="index.js"></script> автоматически вводится в
браузер для открытия упакованного вывода index.html. Обнаружено, что стиль имеет эффект и элемент управления. устройство также выводит нормально:

