【问题标题】:WebStorm cannot save file when using ng serve使用 ng serve 时 WebStorm 无法保存文件
【发布时间】:2017-10-31 10:53:37
【问题描述】:
当使用 ng serve --open --live-reload 在我的开发机器上提供 Angular 应用程序并使用 WebStorm 更改文件时,当 WebStorm 尝试保存时,我收到错误“无法保存文件”。
当我在 Sublime 中编辑文件时,我没有任何问题,所以看起来文件没有被 ng serve 锁定。
开发设置
- Windows 10 主机
- WebStorm 2017.2.3
- 崇高文本 3 3143
- 在 WSL 中运行的 Ubuntu
├─┬ @angular/cli@1.4.9
│ └── @ngtools/webpack@1.7.4
└── @ngtools/webpack@1.7.4
ng serve --open --live-reload
【问题讨论】:
标签:
node.js
windows
angular
webstorm
windows-subsystem-for-linux
【解决方案1】:
这不是 ng serve 锁定文件,也不是 ubuntu 和 windows 之间的任何交互。这是webstorm默认保存文件的方式。
默认情况下,webstorm 将使用 tmp 名称保存文件的副本,删除原始文件,然后将您的副本重命名为与刚刚删除的相同。看起来这个过程(发生得非常快)以某种奇怪的方式与 ng serve 交互,导致文件无法重命名,留下一个有趣的 tmp 文件。
解决方法是在 webstorm 设置的“外观和行为”下的“系统设置”中关闭“使用“安全写入”(首先将更改保存到临时文件)。
【解决方案2】:
这是 WSL 特有的已知问题,请参阅 IDEA-173073:Safe Writes 功能不保留原始文件权限,导致在 WSL 上运行时出现问题。解决方法是在 File | 中禁用 Use "Safe write"。设置 |外观与行为 |系统设置