【发布时间】:2018-07-05 09:40:02
【问题描述】:
几周以来,我一直在我的项目中使用 Prettier。我真的很喜欢!
我使用的是 JetBrains WebStorm IDE,所以我按照 Prettier 项目网站上的这些说明来了解如何在 WebStorm 中设置文件观察器:https://prettier.io/docs/en/webstorm.html#using-file-watcher
然后,每次我保存 JavaScript 文件时,Prettier 都会自动在其上运行,WebStorm 会在 Prettier 保存文件后立即向我显示更改。
我希望团队中的每个人都使用 Prettier,但并不是每个人都使用 WebStorm。有些人使用的编辑器无法通过 Prettier 轻松配置。因此,我按照 Prettier 项目网站上的这些说明,了解如何在我的 package.json 文件中将文件观察器设置为 npm 脚本:https://prettier.io/docs/en/watching-files.html
"scripts": {
"prettier-watch": "onchange '**/*.js' -- prettier --write {{changed}}"
}
按照文档中的建议,我使用 onchange 包作为我的文件观察器,并且我在 WebStorm 中禁用了文件观察器,因为我不需要 Prettier 连续运行两次。
问题是,当我在 WebStorm 中保存文件时,onchange 包可以正确运行 Prettier,但我在编辑器中看不到更改,即使我退出然后再回到文件窗口也是如此用我的鼠标光标。当我尝试进行新更改并再次保存时,我从 WebStorm 收到此“文件缓存冲突”警告消息:“已对内存和磁盘进行更改。保留内存更改,显示差异,加载文件系统更改”
如果我选择“加载文件系统更改”,Prettier 保存的版本会成功加载。但是每次我保存时都必须看到这个对话框是很烦人的。如果更改能自动反映在 WebStorm 中,我会更喜欢它。
似乎唯一的方法是改用 WebStorm 的内置文件观察器,但是我没有一种简单的方法来为我的同事设置 Prettier,而不强迫他们手动安装自己的独立解决方案。
所以我的问题是:如何使用通用 node.js 文件观察器作为 npm 脚本,在保存后更改我的文件,并在没有此对话框的情况下在 WebStorm 中自动重新加载这些更改?
【问题讨论】:
-
没办法;除非您在首选项中将外部工具设置为文件观察器,否则对文件所做的每个外部更改都会导致此问题。该对话框无法关闭。相关票证:youtrack.jetbrains.com/issue/IDEA-42003
-
好的。似乎我最好的选择可能是将文件观察器设置为任何想要使用它的开发人员的可选脚本,因为他们的编辑器没有内置的。我按照说明设置了一个预提交挂钩,即使没有其他开发人员使用文件观察器,它仍然会强制执行 Prettier 规则。 (prettier.io/docs/en/precommit.html)
标签: javascript node.js npm webstorm prettier