1. Explicação oficial
Em essência, webpack é uma ferramenta de empacotamento modular estático para aplicativos JavaScript atuais. (Esta frase pode ser resumida em dois pontos: módulos e embalagens )
Vamos falar sobre os conceitos de módulos e embalagens !
2. Modularização front-end
3. Como entender a embalagem?
Comparação entre webpack e grunt/gulp
O núcleo do grunt/gulp é Task.
1. Você pode configurar uma série de tarefas e definir as transações a serem processadas pelas tarefas (como ES6, conversão ts, compactação de imagem, conversão scss para css)
2. Em seguida, deixe o grunt/gulp executar essas tarefas em sequência e automatize todo o processo
para ver uma tarefa do gulp.
1. A tarefa a seguir é converter todos os arquivos js em src para a sintaxe ES5.
2. E finalmente envie para a pasta dist.
Quando usar grunhido/gole?
1. As dependências dos módulos do projeto são muito simples e o conceito de modularização nem mesmo é utilizado.
2. Basta usar grunt/gulp para mesclagem e compactação simples.
3. Se todo o projeto utiliza gerenciamento modular e a interdependência é muito forte, podemos usar o webpack.
Qual é a diferença entre grunhido/gulp e webpack?
Primeiro, grunt/gulp coloca mais ênfase na automação de processos front-end, e a modularização não é seu núcleo.
2. O Webpack dá mais ênfase ao gerenciamento de desenvolvimento modular , e funções como compactação de arquivos, mesclagem e pré-processamento são funções incluídas.
( wepack deve depender do ambiente do nó para operação normal, e o ambiente do nó deve ser. necessário para a execução normal. Use a ferramenta npm para gerenciar vários pacotes dependentes no nó).
1. Análise de arquivos e pastas
A seguir está o código no arquivo mathUtils.js e no arquivo main.js : (especificação de modularização CommonJS, CommonJS é o padrão de modularização, nodejs é a implementação de CommodJS (modularização))
2. Comando
webpack ./src/main.js ./dist/bundle.js (empacotar o arquivo main.js em um arquivo bundle.js)
Descrição: Da mesma forma, você também pode usar a especificação modular ES6
3. Crie um arquivo webpack.config.js para simplificar o comando de empacotamento
(mapeie o comando de empacotamento para
o código de entrada e saída do pacote neste arquivo:
entrada: Para a
saída de entrada do pacote: Precisamos obter o caminho na
a descrição do código package.json: Se você quiser usar o nó, você deve confiar no arquivo package.json
Depois de executar npm install [email protected] --save-dev , as dependências são adicionadas da seguinte forma
4. Mapeando comandos do webpack para npm run
Além de mapear o webpack para entrada e saída , você também pode mapear comandos do webpack para npm run para algumas operações (precisa ser modificado na tag de script **"script"** em package. JSON). .
1. O que é loader?
Agora vamos pensar sobre para que o webpack é usado.
2. Processo de uso do carregador
1)
Trabalho de preparação para processamento de arquivo css:
1. No diretório src, crie um arquivo css. , crie um arquivo normal.css nele
2. Reorganize a estrutura de diretórios do arquivo e coloque os arquivos js dispersos em uma pasta js
3. O código em normal.css é muito simples, ou seja, defina o corpo para vermelho
4. Mas o estilo normal.css não terá efeito neste momento, porque não é referenciado e o webpack não consegue encontrá-lo, porque temos apenas uma entrada, e o webpack irá procurar outros arquivos dependentes a partir da entrada.
5. Neste momento devemos referenciá-lo em main.js, o arquivo de entrada
Depois disso precisamos importar o carregador correspondente para uso!
Etapa 1 : Instale o carregador que você precisa usar por meio do npm
(npm install --save-dev css-loader) (npm install --save-dev style-loader)
No site oficial do webpack, encontre o seguinte método de uso do carregador para estilos:
Etapa 2 : Faça instruções de configuração sob a palavra-chave module em webpack.config.js
: css-loader é responsável apenas por carregar arquivos css e não é responsável por incorporar estilos css específicos em documentos.
Neste momento, também precisamos de um estilo. loader nos ajuda a processar
Nota: o style-loader precisa ser colocado na frente do css-loader.
2) Processamento de menos arquivos,
etapa 1 : Instale o carregador correspondente (nota: less também é instalado aqui, porque o webpack usará less para compilar o arquivo less). Comando: npm install --save-dev less-loader less
Etapa 2 : Modifique o arquivo de configuração correspondente (em webpack.config.js) e adicione uma opção de regras para processar arquivos .less. do seguinte modo:
3) Processamento do arquivo de imagem,
etapa 1 : adicione duas imagens ao projeto (uma com menos de 8kb e a outra com mais de 8kb)
etapa 2 : primeiro considere referenciar a imagem no estilo css, como segue
Etapa 3 : Modifique o arquivo de configuração correspondente (em webpack.config.js) e adicione uma opção de regras para processamento de arquivos de imagem. do seguinte modo:
Passo 4 : Foi encontrado um erro após o empacotamento, pois imagens maiores que 8kb serão processadas através do file-loader , mas não há file-loader em nosso projeto. (Você precisa instalar o file-loader , comando npm install --save-dev file-loader). Após a instalação e empacotamento, você descobrirá que há um arquivo de imagem adicional na pasta dist.
Descrição:
Descobrimos que o webpack gerou automaticamente um nome muito longo para nós
1. Este é um valor hash de 32 bits para evitar duplicação de nomes.
2. No entanto, no desenvolvimento real, pode haver certos requisitos para o nome da imagem empacotada
. Portanto, podemos adicionar as seguintes opções nas opções:
1. img: a pasta na qual o arquivo será empacotado.
2. nome: Obtenha o nome original da imagem e coloque-o neste local
3. Hash8: Para evitar conflitos de nomes de imagens, o hash ainda é usado, mas apenas 8 bits são retidos.
4. ext: Use a extensão original da imagem da seguinte forma:
Você também precisará configurar e modificar o caminho usado pela imagem posteriormente
1. Por padrão, o webpack retornará o caminho gerado ao usuário.
2. No entanto, todo o programa está empacotado na pasta dist, então aqui você precisa adicionar outro dist/ ao caminho.
do seguinte modo:
Em resumo, após o empacotamento, o arquivo de imagem fica assim
4), ES6 a ES5 babel
Etapa 2: Importe o Vue em main.js (importe o Vue de 'vue') como segue
Etapa 3: pendure p na instância vue em index.html, como segue
Etapa 4: Um erro é encontrado após o empacotamento. Precisamos especificar que o vue que usamos é a versão do compilador de tempo de execução .
Operações específicas: você precisa adicionar resolução ao webpack e usar um alias ( alias ), como segue:
Etapa 1: Pendure p na instância do vue em index.html
Etapa 2: Importe o componente APP para o arquivo main.js , registre o APP na instância Vue e use o componente APP no modelo Vue ( componentização )
Etapa 3: Crie o arquivo APP.vue e separe o modelo da página vue do código js e do código css , como segue
Etapa 4: configure o carregador correspondente do vue,
Modifique o arquivo de configuração de webpack.config.js:
1. Entenda plugin
2. Webpack-Add copyright information Uso do plug-in
3. Plug-in HTML do pacote
4. Plug-in de compressão js
. O Webpack fornece um servidor de desenvolvimento local opcional. Este servidor local é construído com base em node.js e usa a estrutura expressa internamente. Ele pode alcançar o que desejamos, permitindo que o navegador atualize e exiba automaticamente os resultados modificados. .
No entanto, é um módulo separado. Você precisa instalá-lo antes de usá-lo no webpck. Comando: (npm install --save-dev [email protected])
devserver também é uma opção no webpack . pode ser definido da seguinte forma :
1. contentBase: Qual pasta fornece serviços locais. O padrão é a pasta raiz. Precisamos preencher ./dist aqui.
2. porta: número da porta
3. inline: atualização da página em tempo real
4. historyApiFallback: Na página SPA, a
configuração do arquivo webpack.config.js do modo histórico que depende de HTML5 é modificada da seguinte forma:
O parâmetro –open significa abrir o navegador diretamente
Além disso,
a seguir queremos separar os arquivos de configuração do webpack: ou seja, separar o que é necessário para o desenvolvimento e o que é usado para publicação ( compilação ). do seguinte modo:
1. O que significa CLI?
2
.. Pré-requisitos para usar o Vue CLI - Node (o Node precisa ser instalado)
Porém, para usar o Node, onpm
deve estar envolvido.
3. Use Vue CLI para
instalar o andaime Vue
npm install -g @vue/cli
Nota: A versão instalada acima é a versão Vue CLI3 Se você deseja inicializar o projeto de acordo com o método Vue CLI2, não é possível
inicializar. o projeto Vue CLI2
vue init webpack meu -projeto