
Ao escrever o código, o arquivo js em src é introduzido. Após o empacotamento do webpack, um arquivo de entrada é formado. Neste momento, o nome e o caminho do arquivo js em html estão errados. precisa ser empacotado e o arquivo html deve ser empacotado. O caminho para o arquivo js importado foi substituído.
Os benefícios de usar o webpack para empacotar html são:
(1) O arquivo js empacotado pode ser introduzido automaticamente no html
(2) Depois que o html for empacotado, ele ainda será gerado na pasta de construção e colocado junto com o arquivo js empacotado, para que quando estivermos online Você só precisa copiar as pastas geradas pelo empacotamento para o ambiente online
(3) Isso nos ajudará a compactar arquivos html
1. Instale o plug-in
nativamente
.só pode entender arquivos JS e JSON e deve suportar o empacotamento de outros arquivos. Todos os tipos de arquivos precisam instalar o plug-in ou carregador correspondente.
Se precisarmos empacotar arquivos HTML, primeiro precisamos instalar html-webpack-plugin :
npm install html-webpack-plugin -D
A função deste plug-in:
Criar um arquivo html sob a exportação por padrão, e então importar todos os recursos JS/CSS.
Você também pode especificar um arquivo html e adicionar recursos a este arquivo html
html-webpack-plugin
.
configure-o no arquivo webpack.config.js :
// ...
// 1. Introduzir o plug-in const HtmlWebpackPlugin = require('html-webpack-plugin');
módulo.exportações = {
// ...
// 2. Configure os plugins de plug-in em plugins: [
novo HtmlWebpackPlugin({
template: 'index.html', // Especifique o arquivo de modelo de entrada (relativo ao diretório raiz do projeto)
filename: 'index.html', // Especifique o nome e o local do arquivo de saída (em relação ao diretório de saída)
// Para outros itens de configuração do plug-in, você pode visualizar a documentação oficial do plug-in})
]
} Link de configuração detalhada: https://www.npmjs.com/package/html-webpack-plugin
Certifique-se de que o caminho e o nome do arquivo do modelo de entrada sejam consistentes com a configuração e então você poderá compilar.
3. Ao configurar várias entradas JS e várias situações HTML
, vários arquivos HTML precisam ser compilados e os arquivos precisam importar diferentes arquivos JS. No chunk , por padrão, o arquivo HTML empacotado importará todos os arquivos JS empacotados. especificado para distribuir JS.
const caminho = require('caminho');
// 1. Introduzir o plug-in const HtmlWebpackPlugin = require('html-webpack-plugin');
módulo.exportações = {
// ...
// 2. Configure a entrada JS (múltiplas entradas)
entrada: {
fornecedor: ['./src/jquery.min.js', './src/js/common.js'],
índice: './src/index.js',
carrinho: './src/js/cart.js'
},
//Configurar saída de exportação: {
nome do arquivo: '[nome].js',
caminho: path.resolve(__dirname, 'build/js')
},
// 3. Configurar plug-ins: [
novo HtmlWebpackPugin({
modelo: 'index.html',
nome do arquivo: 'index.html',
// Use chunk para especificar quais arquivos JS importar chunk: ['index', 'vendor']
}),
// Quantos HTMLs precisam ser compilados, quantos novos plug-ins são necessários new HtmlWebpackPlugin({
modelo: './src/cart.html',
nome do arquivo: 'carrinho.html',
pedaço: ['carrinho', 'fornecedor']
})
]
} Dica: O que precisa ser observado aqui é quantos arquivos HTML você precisa compilar, quantas vezes você precisa criar um novo
HtmlWebpackPlugin.
Depois que a configuração acima for compilada com sucesso, a saída será a seguinte:
build
|__ index.html #Introduza index.js e vendor.js
|__ cart.html #Apresente cart.js e vendor.js
|__js
|__ vendor.js # Gerado por jquery.min.js e common.js |__ index.js # Gerado por index.js |__ cart.js # Gerado por cart.js para 1, webpack. config.js configuração
const HTMLWebpackPlugin = require('html-webpack-plugin')
...
plug-ins: [
// html-webpack-plugin configuração de empacotamento html Este plug-in irá gerar um arquivo HTML5 para seu novo HTMLWebpackPlugin({
template: "./index.html", // Caminho relativo ou absoluto empacotado para o modelo (destino do pacote)
title: 'Home', // Título usado para o documento HTML gerado hash: true, //true anexa o hash de compilação exclusivo do webpack a todos os scripts e arquivos CSS incluídos. Usado principalmente para limpar o cache,
minify: { // Compacta HTML
colapsoWhitespace: true, // Recolher espaço em branco keepClosingSlash: true, // Manter lacunas fechadas removeComments: true, // Remover comentários removeRedundantAttributes: true, // Remover atributos redundantes removeScriptTypeAttributes: true, // Remover atributos de tipo de script Script removeStyleLinkTypeAttributes: true, // Excluir o atributo de tipo de link de estilo useShortDoctype: true, // Usar o tipo de documento curto preserveLineBreaks: true, // Preservar quebras de linha minifyCSS: true, // Compactar css no texto
minifyJS: true, // Compacta js em texto
}
}),
],
... 2. Neste momento nosso index.html
<!DOCTYPE html>
<html idioma="">
<cabeça>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>demonstração do webpack</title>
</head>
<corpo>
<div id="aplicativo">
configuração de empacotamento html</div>
</body>
</html> 3. Neste momento, nosso index.js
importa './../css/index.less'
função adicionar(x,y) {
retornar x + y
}
console.log(add(2,3)); 3. Digite o pacote no console webpack e descubra que o arquivo de saída do pacote possui um index.html adicional, o conteúdo é o seguinte
<!DOCTYPE html>
<html idioma="">
<cabeça>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>demonstração do webpack</title>
<script defer src="index.js"></script></head>
<corpo>
<div id="aplicativo">
configuração de empacotamento html</div>
</body>
</html> <script defer="" src="index.js"></script> é automaticamente introduzido no
navegador para abrir a saída empacotada index.html. Verifica-se que o estilo tem um efeito e o controle. a unidade também produz normalmente:

