【问题标题】:ESLint - ignore line from JS ParsingESLint - 忽略 JS 解析中的行
【发布时间】:2016-01-19 22:56:12
【问题描述】:

从 JSHint 迁移到 ESLint 以获得 ES6 / React 支持并遇到错误。我在我的 JS 文件中编写 Ruby 来生成一些常量,而不是从后端对它们进行 AJAXing,例如:

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 的日子里,我会用 /* jshint ignore:start */ 包装,所以:

/* jshint ignore:start */
  //some ruby code
/* jshint ignore:end */

但是在使用禁用/启用 cmets 时,这不起作用,我仍然收到错误。

/*eslint-disable*/ 
  //some ruby code
/*eslint-enable*/

这只是对 ESLint 的限制吗?有什么办法可以解决这个问题吗?我曾考虑过编写一个处理器并以这种方式删除所有 ruby​​ 代码,但我希望有一个更简单/更快的解决方案,因为这实际上只有两到三个文件。

谢谢

【问题讨论】:

  • 这对我有用。 /* eslint-disable */ console.log(); /* eslint-enable */

标签: javascript ruby ruby-on-rails-4 eslint


【解决方案1】:

JSHint 和 ESLint 之间的区别在于 JSHint 在解析文件时对文件进行 linting。因此,注释将禁用解析器,直到它看到相应的结束注释。在 ESLint 中,整个文件首先被解析为 AST,然后再进行处理。没有办法为几行禁用解析器。 最好的办法是创建一个处理器(或查看是否有人已经创建了一个),它只会提取文件的 javascript 部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多