从 JSHint 迁移到 ESLint 以获取 ES6/React 支持并遇到错误。我在 JS 文件中编写 Ruby 来生成一些常量,而不是从后端 AJAX 处理它们,示例如下:
var myObj = {
<% Requirements::COMPARATORS.sort.each do |k,v| %> */
{ code: '<%= escape_javascript k %>', name: '<%= escape_javascript v %>'
<% end %>
}
这会导致 ESLint 出现错误
2:1 error Parsing error: Unexpected token
在 JSHint 时代,我会用/* jshintignore:start */换行,所以:
/* jshint ignore:start */
//some ruby code
/* jshint ignore:end */
但是在使用禁用/启用注释时,这不起作用,我仍然收到错误。
/*eslint-disable*/
//some ruby code
/*eslint-enable*/
这只是 ESLint 的限制吗?有什么办法可以解决这个问题吗?我考虑过编写一个处理器并以这种方式删除所有 ruby 代码,但是我希望有一个更简单/更快的解决方案,因为这实际上只在两到三个文件中。
谢谢
最佳答案
JSHint 和 ESLint 之间的区别在于 JSHint 在解析文件时对文件进行 linting。因此,注释将禁用解析器,直到它看到相应的结束注释。在 ESLint 中,整个文件首先被解析为 AST,然后进行处理。无法禁用几行解析器。 你最好的选择是创建一个处理器(或者看看是否有人已经创建了一个),它只提取文件的 javascript 部分。
关于javascript - ESLint - 忽略 JS 解析中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34888523/