文章目录
本文使用 Webpack 从零开始搭建一个开发环境的脚手架配置,在此做个记录,也方便以后使用。
前言
我的上一篇文章简单介绍了一下 Webpack 的一些核心概念和基本配置,需要了解的朋友可以先参考一下:Webpack 的简单介绍
从 webpack v4.0.0 开始,可以不用引入一个配置文件。直接使用 webpack 命令就可进行打包。但是,一般我们需要进行更灵活的配置功能,所以本文我也创建一个 webpack 的配置文件,对 webpack 的一些属性进行配置。
环境搭建
项目结构
首先我们创建一个目录,初始化 npm,然后 在本地安装 webpack,接着安装 webpack-cli(此工具用于在命令行中运行 webpack):
$ mkdir webpack-dev-demo && cd webpack-dev-demo
$ npm init -y
$ npm install webpack webpack-cli --save-dev
project
webpack-dev-demo
|- package.json
|- /public
|- index.html
|- /src
|- index.js
src/index.js
function component() {
var element = document.createElement('div');
element.innerHTML = 'Hello World';
return element;
}
document.body.appendChild(component());
public/index.js
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Webpack 开发环境配置</title>
</head>
<body>
</body>
</html>
package.json
{
"name": "webpack-dev-demo",
"version": "1.0.0",
"description": "",
"private": true,
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack --config webpack.config.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"webpack": "^4.29.0",
"webpack-cli": "^3.2.1"
}
}
创建配置文件
在项目根目录下创建 webpack.config.js 配置文件
project
webpack-dev-demo
|- package.json
|- /public
|- index.html
|- /src
|- index.js
+ |- webpack.config.js
配置入口和输出
webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: '[name]-[hash:8].js',
path: path.resolve(__dirname, 'dist')
}
}
运行 webpack
$ npm run build
控制台的打印结果
可以看到打印日志,打包成功了,但是此时在浏览器打开我们的 index.html 文件,却发现界面上什么都不显示,这个也好理解,因为 index.html 此时还没有引入任何的 js 文件。所以这个时候就要将打包后的文件引入到 index.html 文件中,但是可以看到 dist 文件夹下的 js 文件名有很多的 hash 值,而且每次编译都可能不同,怎么办呢?这时候就要引入 html-webpack-plugin 插件了
html-webpack-plugin 插件的使用
安装插件:
$ npm install html-webpack-plugin --save-dev
使用插件:
webpack.config.js
...
const HTMLWebpackPlugin = require('html-webpack-plugin');
module.exports = {
...
plugins: [
new HTMLWebpack({
// 用于生成的HTML文档的标题
title: 'Webpack 开发环境配置',
// webpack 生成模板的路径
template: './public/index.html'
})
]
}
关于 html-webpack-plugin 插件更多配置请参考:插件文档。
再次运行 webpack
$ npm run build
可以看到 dist 文件夹下生成了一个 index.html 文件,在浏览器中打开这个 index.html 文件,可以看到,‘Hello World’ 已经能够正常显示了
至此,项目能够正常打包了,但是还不够,此时可以看到 dist 文件夹下有两个 js 文件,但是明明只打了一个包啊。是因为另一个包使我们上一次操作打出来的,并没有删除掉。所以,为了避免 dist 文件夹中的文件变得杂乱,我们还需要引入 clean-webpack-plugin 插件帮助我们清理 dist 文件夹
clean-webpack-plugin 插件的使用
安装插件:
$ npm install clean-webpack-plugin --save-dev
用法:new CleanWebpackPlugin(paths [, {options}])
webpack.config.js
...
const CleanWebpackPlugin = require('clean-webpack-plugin');
module.exports = {
...
plugins: [
...