使用 ng serve 时 WebStorm 无法保存文件

WebStorm cannot save file when using ng serve

当使用 ng serve --open --live-reload 在我的开发机器上提供 Angular 应用程序,并使用 WebStorm 更改文件时,我在 WebStorm 尝试保存时收到错误 "cannot save file"。

当我在 Sublime 中编辑文件时,我没有遇到任何问题,所以看起来文件没有被 ng serve 锁定。

开发设置

这不是 ng serve 锁定文件,也不是 ubuntu 和 windows 之间的任何交互。这是webstorm默认保存文件的方式。

默认情况下,webstorm 将使用 tmp 名称保存文件的副本,删除原始文件,然后将您的副本重命名为与刚刚删除的相同。看起来这个过程(发生得非常快)以某种奇怪的方式与 ng serve 交互,导致文件无法重命名,留下一个有趣的 tmp 文件。

解决方法是在webstorm设置中'Appearance and behaviour'下的'system settings'中关闭'Use "safe write" (save changes to a temporary file first)'

这是一个特定于 WSL 的已知问题,请参阅 IDEA-173073Safe Writes 功能不保留原始文件权限,导致在 WSL 上 运行 时出现问题。解决方法是在 文件中禁用 Use "Safe write" |设置 |外观与行为 |系统设置