Webpack 有时无法检测到使用 Intellij Idea 保存的更改
Webpack sometimes fails to detect changes saved with Intellij Idea
我正在 Intellij Idea 中开发一个 JavaScript/React 应用程序,我正在使用 webpack-dev-server
增量构建我的文件。这意味着开发服务器正在监视文件,如果文件发生变化,webpack
会重建它。相当标准的场景。
不幸的是,webpack
有时决定忽略某些文件。我可以随心所欲地更改它们,但 webpack
什么都不做。我无法确定文件被忽略的任何模式。这是任意的。有时我只是创建一个新文件,webpack
忽略它。
不过有趣的是,它仅在我使用 Intellij Idea 执行保存时发生。如果我在另一个编辑器(例如 vim)中打开该文件并保存它,该文件将被正确重建。其实,简单的touch file.js
就足以触发重建
我猜想Intellij Idea保存文件的方式有问题。有什么想法吗?
这是由于称为 "safe write" 的 IDE 功能所致。启用后,IDE 会将更改写入临时文件覆盖真实文件。这意味着 webpack 的文件监视机制无法获取更改。禁用此功能以解决问题。 Reference.
对我来说这不起作用,我发布这个以防有人遇到相同的情况。每次保存后,webpack watch 脚本构建新的包,我从磁盘重新加载所有文件 (CTRL + ALT + Y)。只有在那之后,更改才可见。
关于此行为有一个未解决的问题 "Background" changes by external tool not being picked up until VFS refresh happens:文件已保存,但必须从磁盘重新加载所有文件才能看到更改(例如在浏览器中)。
我正在 Intellij Idea 中开发一个 JavaScript/React 应用程序,我正在使用 webpack-dev-server
增量构建我的文件。这意味着开发服务器正在监视文件,如果文件发生变化,webpack
会重建它。相当标准的场景。
不幸的是,webpack
有时决定忽略某些文件。我可以随心所欲地更改它们,但 webpack
什么都不做。我无法确定文件被忽略的任何模式。这是任意的。有时我只是创建一个新文件,webpack
忽略它。
不过有趣的是,它仅在我使用 Intellij Idea 执行保存时发生。如果我在另一个编辑器(例如 vim)中打开该文件并保存它,该文件将被正确重建。其实,简单的touch file.js
就足以触发重建
我猜想Intellij Idea保存文件的方式有问题。有什么想法吗?
这是由于称为 "safe write" 的 IDE 功能所致。启用后,IDE 会将更改写入临时文件覆盖真实文件。这意味着 webpack 的文件监视机制无法获取更改。禁用此功能以解决问题。 Reference.
对我来说这不起作用,我发布这个以防有人遇到相同的情况。每次保存后,webpack watch 脚本构建新的包,我从磁盘重新加载所有文件 (CTRL + ALT + Y)。只有在那之后,更改才可见。
关于此行为有一个未解决的问题 "Background" changes by external tool not being picked up until VFS refresh happens:文件已保存,但必须从磁盘重新加载所有文件才能看到更改(例如在浏览器中)。