我如何阻止 csslint 和 jshint 在 Atom 中检查我的 EJS?

How do I stop csslint and jshint from linting my EJS in Atom?

我正在 Atom 中编辑 EJS 文件。我目前安装了 linter-csslint 和 linter-jshint 包。两者似乎都将 .ejs 文件识别为 .html 并将其标记为 HTML.

这是我看到的

如何让 linter 忽略 .ejs 文件?或者是否有针对 Atom 的特定于 EJS 的 linter?

根据该照片,您似乎安装了 language-ejs 包并且它优先识别语言。这里的问题实际上不是 linters,而是 language-html 包。

linter-csslint and linter-jshint, we see that both will lint on language-html scopes. However, your file is in the language-ejs scope. What is happening here is that Atom should be locking the scope down to just language-ejs, but is instead mixing between that and language-html. The reason that language-html is also a scope here is seen here 的范围内。

所以自己解决这个问题其实很容易。您可以在本地打开 language-html 包的源代码(应该在 ~/.atom/packages/language-html/grammars/html.cson 中)并删除我上面显示的 ejs 行。然而,更好的长期解决方法是在 language-html 上提出一个你认为 ejs 不在 html 语法范围内的问题。此外,Atom 可能不应该将文件识别为具有多个语法范围,但这是一个更难解决的问题。

永久修复此问题的 PR 是 here

您可以使用 .jshintignore 个文件 (https://jshint.com/docs/cli/#ignoring-files) 忽略所有 .ejs 个文件。我刚刚自己添加了一个来解决 Atom 中的同样问题,它似乎奏效了。

我创建了 ~/.jshintignore,内容如下:

*.ejs

值得注意的是,这会影响使用 jshint 的任何其他内容。

您可以转到软件包并禁用该特定软件包。