另一个项目的前端离职了,中途接手该项目,在本地构建启动之后,发现nodejs的服务cpu占用率高达90%多,遂寻找原因和解决办法。
我已经做好了遇到问题和困难的准备。 — 某接盘侠
原因
本地开发时,通常会使用热更新服务,设置watch
属性开启文件修改的监听。
// webpack.config.js
module.exports = {
//...
watch: true
};
当开启监听之后可以设置监听的方式watchOptions
,其中有一个属性是poll
,使用轮询方式监听文件是否修改,默认为false
,当为true
时,默认为毫秒级,也可以设置为数字。当其值为true
时,就会导致cpu使用率变高。
// webpack.config.js
module.exports = {
//...
watchOptions: {
poll: 1000 // 每1000毫秒轮询一次
}
};
解决办法
将watchOptions
设置为false
或者一个比较大的数字即可。推荐设置为false
,因为实际开发时不需要实时监听文件的修改,在保存ctrl + s
时会自动触发检查。