将 Node.js 文件观察器与 JetBrains WebStorm 结合使用

Mat*_*dor 5 javascript node.js npm webstorm prettier

我已经在我的项目中使用 Prettier 几个星期了。我很喜欢!

我使用 JetBrains WebStorm IDE,因此我按照 Prettier 项目网站上的说明了解如何在 WebStorm 中设置文件观察器:https ://prettier.io/docs/en/webstorm.html#using-file-watcher

然后,每次我保存 JavaScript 文件时,Prettier 都会自动运行该文件,一旦 Prettier 保存文件,WebStorm 就会向我显示所做的更改。

我希望团队中的每个人都使用 Prettier,但不是每个人都使用 WebStorm。有些人使用的编辑器无法通过 Prettier 轻松配置。因此,我按照 Prettier 项目网站上的说明了解如何在我的文件中将文件观察器设置为 npm 脚本package.json:https ://prettier.io/docs/en/watching-files.html

"scripts": {
  "prettier-watch": "onchange '**/*.js' -- prettier --write {{changed}}"
}
Run Code Online (Sandbox Code Playgroud)

我onchange按照文档中的建议使用该包作为文件观察器,并且在 WebStorm 中禁用了文件观察器,因为我不需要 Prettier 连续运行两次。

问题是,当我在 WebStorm 中保存文件时,onchange包可以正确运行 Prettier,但我在编辑器中看不到更改,即使我用鼠标光标切换出文件窗口然后再返回到文件窗口也是如此。当我尝试进行新的更改并再次保存时,我收到来自 WebStorm 的“文件缓存冲突”警告消息:“已对内存和磁盘中进行了更改。保留内存更改、显示差异、加载文件系统更改”

在此输入图像描述

如果我选择“加载文件系统更改”,则 Prettier 保存的版本会成功加载。但每次保存时都必须看到这个对话框,这很烦人。我希望这些更改能够自动反映在 WebStorm 中。

似乎唯一的方法是使用 WebStorm 的内置文件观察器,但我没有一种简单的方法来为我的同事设置 Prettier,而不强迫他们手动安装自己的独立解决方案。

所以我的问题是:如何使用通用的 node.js 文件观察器作为 npm 脚本,在保存后对我的文件进行更改,并在没有此对话框的情况下自动将这些更改重新加载到 WebStorm 中?

Dan*_*hko 0

也许您可以尝试Use "safe write"在 webstorm 的系统设置窗格中进行设置