一、webpack 进阶用法的文件监听、热更新、文件指纹设置和代码压缩
webpack
中的文件监听,文件监听是在发现源码发生变化时,自动重新构建出新的输出文件。webpack
开启监听模式,有两种方式,如下所示:
- 启动
webpack
命令时,带上 --watch
参数
- 在配置
webpack.config.js
中设置 watch: true
webpack
中的文件监听使用,唯一缺陷是每次需要手动刷新浏览器,代码如下:
"scripts": {
"build": "webpack",
"watch": "webpack --watch"
}
- 文件监听的原理分析,轮询判断文件的最后编辑时间是否变化。某个文件发生了变化,并不会告诉立刻告诉监听者,而是先缓存起来,等
aggregateTimeout
,代码如下:
module.export = {
watch: true,
watchOptions: {
ignored: /node_modules/,
aggregateTimeout: 300,
poll: 1000
}
}
webpack
中的热更新 webpack-dev-server
,WDS
不刷新浏览器,WDS
不输出文件,而是放在内存中,使用 HotModuleReplacementPlugin
插件,代码如下:
"scripts": {
"build": "webpack",
"dev": "webpack-dev-server --open"
}
- 热更新使用
webpack-dev-middleware
,WDM
将 webpack
输出的文件传输给服务器,适用于灵活的定制场景,代码如下:
const express = require('express');
const webpack = require('webpack');
const webpackDevMiddleware = require