我正在 Atom 中编辑 EJS 文件。我目前安装了 linter-csslint 和 linter-jshint 包。两者似乎都将 .ejs 文件识别为 .html 并将其 linting 为 HTML。
这就是我所看到的
如何让 linter 忽略 .ejs 文件?或者是否有针对 Atom 的 EJS 特定的 linter?
我正在 Atom 中编辑 EJS 文件。我目前安装了 linter-csslint 和 linter-jshint 包。两者似乎都将 .ejs 文件识别为 .html 并将其 linting 为 HTML。
这就是我所看到的
如何让 linter 忽略 .ejs 文件?或者是否有针对 Atom 的 EJS 特定的 linter?
您可以忽略所有.ejs
带有文件的.jshintignore
文件 ( https://jshint.com/docs/cli/#ignoring-files )。我刚刚自己添加了一个来解决 Atom 中的同样问题,它似乎已经奏效了。
我创建~/.jshintignore
了以下内容:
*.ejs
值得注意的是,这会影响使用 jshint 的任何其他内容。
根据那张照片,您似乎安装了该language-ejs
软件包,并且它优先于识别语言。这里的问题实际上不是 linter,而是language-html
包。
在linter-csslint和linter -jshint 的作用域中,我们看到它们都会在language-html
作用域上 lint。但是,您的文件在language-ejs
范围内。这里发生的事情是 Atom 应该将范围锁定到 just language-ejs
,而是在 和 之间混合language-html
。language-html
这里也是范围的原因见这里。
所以为自己解决这个问题实际上很容易。您可以在本地打开language-html
包的源代码(应该在 中~/.atom/packages/language-html/grammars/html.cson
)并删除ejs
我上面显示的行。但是,更好的长期解决办法是提出一个language-html
您认为不ejs
属于html
. 此外,Atom 可能不应该将文件识别为具有多个语法范围,但这是一个更难以解决的问题。
永久修复此问题的 PR 在这里。
您可以直接转到软件包并禁用该特定软件包。