1 实时打包
默认情况下,每次打包都需要运行打包命令。
但是我们日常开发中每次改完代码,保存代码之后,代码就自动打包更新运行文件了。
下面来看看这个功能是如何配置的。
webpack配置:
module.exports = {
watch: true,//开启监控,只要改代码就会实时编译
watchOptions: {//监控配置
poll: 1000,//每一秒询问1000次(需要更新吗?)
aggregateTimeout: 500,//防抖,500毫秒内输入的代码只打包一次(连续输入代码时不打包)
ignored: /node_modules/,//node_modules文件夹不需要监控
},
}
查看结果
运行:
npm run build
这时候会发现打包命令执行完之后并没有结束,而是暂停了进程,它在等待你下次代码修改,只要修改了代码并保存,就会自动重新运行打包命令。
watch的原理:
watch开启后,webpack会隔一段时间(poll设置的时间)轮训一次要打包的文件,监听到变化,会缓存一下第一次,在一段时间时候后(aggregateTimeout设置的时间),检测所有修改的文件。这时候把所有修改文件一起编译打包。
也可以在运行webpack时添加:--watch
命令启用watch
2 webpack小插件
1. cleanWebpackPlugin
第三方库插件。
作用:每次打包输出目录之前,删除已有的打包目录
。
安装:
npm install clean-webpack-plugin -D
webpack配置:
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
module.exports = {
plugins: [
new CleanWebpackPlugin()
],
}
打包运行:
npm run build
发现原有./dist
目录下的内容都被删除并且生成了新文件。
2. copyWebpackPlugin
第三方库插件。
作用:拷贝其他文件
(如:文档目录)到打包目录
(如:./dist
)
安装:
npm install copy-webpack-plugin -D
webpack配置:
let CopyWebpackPlugin = require("copy-webpack-plugin")
module.exports = {
new CopyWebpackPlugin({
patterns: [{
from: "./doc",//源路径
to: "./doc",//目标路径
}]
})
}
打包运行:
npm run build
发现文档目录./doc
已经被打包到./dist
文件夹下面,并包含所有内容。
3. bannerPlugin
内置插件,无需安装。
作用:版权声明
。
webpack 配置:
const webpack = require('webpack')
module.exports = {
new webpack.BannerPlugin("2021年6月1日,作者:毛毛"),
}
打包运行:
npm run build
发现打包目录./dist
文件夹下面,每个js文件内容的最前面都会多出一行设置的版权文案注释。
/*! 2021年6月1日,作者:毛毛 */
暂无评论