在 visual studio 代码中禁用 .ejs 文件的 onsave 格式

Disable onsave formating for .ejs files in visual studio code

我正在使用 ejs 文件,但为了重用一些代码,我正在使用包含功能。鉴于一些 opening/closing html 标签被放置在其他文件中,在我保存我的更改后,某些东西(我不知道是更漂亮的扩展还是 VS 代码编辑器)将结束标签包含到我的代码中,当我 运行 它时引起了几个问题。

我自己不使用 EJS,但在 VSCode 中使用它后,我注意到我的 .ejs 文件被视为 HTML 文件。您可以通过查看编辑器的右下角来查看 VSCode 是如何解释文件的。您也可以搜索 EJS 扩展。

您可能启用了“编辑器:保存时格式化”选项。要禁用该设置,请转到首选项,然后在搜索栏中键入“保存时格式化”。找到设置。取消选中该框。这应该可以解决问题。

如果,正如您提到的,您的结束 HTML 标签在其他文件中,那么您的 HTML 无效并且格式化程序(包括 Prettier 的和默认的)将自动完成结束标签。 (我敢打赌 EJS 也不喜欢缺少结束标记,但由于我不使用它,所以我不太确定,也许它很好。)

在您的 settings.json 中,您应该添加这些设置。 只需输入您想要的内容,而不是 "[css]"。 (文件格式)

请忽略与此答案无关的第 2 行 :)。

编辑

正如@aegatlin 所说,使用这个:"[html]"。(如果 "[ejs]" 不适合你)

另一种解决方案是使用 .prettierignore 文件并放入:

*.ejs

Zulhilmi Zainudin 有解决办法 https://medium.com/@zulhhandyplast/how-to-disable-vs-code-formatonsave-for-specific-file-extensions-c60e8f254243

在 vscode 设置文件中,将 ejs 扩展文件关联到“语言”。然后你可以为这种语言指定不同的规则:

.vscode/settings.json 文件内容:

{
    "files.associations": {
        "*.ejs": "ejs" // this create the language « ejs » which refers to any .ejs file
    },
    "[ejs]": { // custom settings for the language « ejs »
        "editor.formatOnSave": false
    }
}