4

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

这就是我所看到的

在此处输入图像描述

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

4

3 回答 3

3

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

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

*.ejs

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

于 2018-11-11T23:20:19.403 回答
1

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

linter-csslintlinter -jshint 的作用域中,我们看到它们都会在language-html作用域上 lint。但是,您的文件在language-ejs范围内。这里发生的事情是 Atom 应该将范围锁定到 just language-ejs,而是在 和 之间混合language-htmllanguage-html这里也是范围的原因见这里

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

永久修复此问题的 PR 在这里

于 2018-10-25T12:50:05.023 回答
0

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

于 2020-07-03T08:32:53.913 回答