文件监听是在源码发生变化时,自动重新构建出新的输出文件。
webpack 开启监听模式,有两种方式:
1.启动 webpack 命令时,带上 --watch 参数。
唯一缺点:需要手动刷新才能看到变化;
2.在配置 webpack.config.js 中设置 watch: true。
优点:
(1) WDS 不刷新浏览
(2) WDS 不输出文件, 是放在内存中
(3) 使 用 HotModuleReplacementPlugin 插件
1 第一种方式, --watch
1.1 配置package.json
// ... "scripts": { "test": "echo \"Error: no test specified\" exit 1", "build": "webpack", "watch": "webpack --watch" // 新增配置 // ... }
1.2 到控制台输入 npm run watch
1.3 修改文件,保存后,会自动打包,到浏览器刷新,才能看到变化。
1.4 文件监听的原理 分析
轮询判断文件的最后编辑时间是否变化
某个 件发 生了 变化,并不会 刻告诉监听者, 是先缓存起来,等 aggregateTimeout
module.export = { //默认 false,也就是不 开启 watch: true, //只有开启监听模式时,watchOptions才有意义 wathcOptions: { //默认为空,不监听的文件或者文件夹,支持正则匹配 ignored: /node_modules/, //监听到变化发生后会等300ms再去执行,默认300ms aggregateTimeout: 300, //判断文件是否发生变化是通过不停询问系统指定文件有没有变化实现的,默认每秒问1000次 poll: 1000
2 第二种方式,在配置 webpack.config.js 中设置 watch: true(热更新:webpack-dev-server)
2.1 配置package.json
// ... "scripts": { "test": "echo \"Error: no test specified\" exit 1", "build": "webpack", "dev": "webpack-dev-server --open" // 新增配置,运行 npm run dev 会自动打开浏览器 // ... }
2.2 配置webpack.config.js
'use strict' const path = require('path'); var webpack = require('webpack'); // 引进 webpack module.exports = { // ... mode:'development', // production 改为开发环境,因为只有开发环境才用到热更新 module:{ // ... plugins:[ new webpack.HotModuleReplacementPlugin() devServer:{ contentBase:'./dist', hot: true }
2.3 到控制台运行 npm run dev,即可运行!
到此这篇关于详解webpack的文件监听实现(热更新)的文章就介绍到这了,更多相关webpack 文件监听内容请搜索凡科以前的文章或继续浏览下面的
详细说明webpack的文档监视完成(热升级) 本文关键详细介绍……
招聘人数:9职位信息岗位职责:1负责通过网络(qq、微信)主动……
前言:热烈欢迎赶到蓝纤高新科技甘肃seo互联网营销推广专题讲……
大家关键为您处理这2个难题:1、钱花了,作出来的实际效果没……
招聘人数:7职位信息岗位职责:1)负责公司网站及淘宝店铺装……
招聘人数:5职位信息1、日常主要负责信息流平台的广告推广,……