我正在使用Emacs编辑Webpack开发服务器监视的目录中的文件。每次我在文件中进行更改时,都会在同一目录中创建备份文件,例如.#original_filename
,即使我没有在Emacs中保存更改。这会导致服务器的观察者注册更改,即使我没有创建更改。因此,每次我在文件中进行更改时服务器都会重新加载,然后在保存时再次重新加载。
这有点令人困惑和耗时。看着Webpack's documentation,我发现了以下选项:
对于某些系统,观看许多文件系统可能会导致大量CPU或内存使用。可以排除像node_modules这样的巨大文件夹:
ignored: /node_modules/
也可以使用任何匹配模式:
ignored: "files/**/*.js"
所以我修改了我的配置,如下所示,匹配并忽略以.
开头的文件:
devServer: {
...
watchOptions: {
ignored: './src/app/**/.*',
},
...
}
我重新启动了开发服务器,但是观察者仍然将备份文件注册为对代码库所做的更改。我究竟做错了什么?
我发现了一个尝试了几次后可以解决的解决方案。出于某种原因,当开头有./
时,它不起作用,这应该只是当前目录。
将匹配模式更改为以下作品:
watchOptions: {
ignored: '**/.*',
},
正确的方法是使用节点的本机模块路径 你的webpack.config.js应该是这样的:
const path = require('path')
module.exports = {
...
devServer: {
watchOptions: {
ignored: [
path.resolve(__dirname, 'dist'),
path.resolve(__dirname, 'node_modules')
]
}
},
...
}