javascript - ESLint - 忽略 JS 解析中的行

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

从 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/

相关文章:

javascript - 移动项目在 DOM 中的位置

ruby - Test::Unit 中的全局设置和拆卸 block

devise - 未定义的方法 `secret_key=' 用于设计 :Module (NoMethodError)

javascript - 在 AngularJS 中将数组从父组件传递到子组件

javascript - 如何将外部 JSON 文件传递​​到可以在任何地方访问的 javascript 变量

javascript - Nodejs 或 Java 中的 if 和 return

ruby-on-rails - ruby 中的破解如何访问转换为哈希的 JSON 中的数据?

ruby /ice_cube : Exclude whole day for hourly recurring event

ruby-on-rails - 记录数据更改以进行同步

ruby-on-rails - 删除嵌套属性不起作用