如何解决如何让 ESLint 在 Rails 应用程序中定位全局符号而不用注释乱扔代码?
我有一个相当普通的 Rails 6 应用程序,仍在使用 Sprockets(不是 Webpack),我们最近开始使用更复杂的 JavaScript 引入视图,足以使 sub
dispatch
sub fired
change detect
change detect done
现在有几个文件分组以各种方式编码。
因为我们已经开始编写更多的 JavaScript,所以我们决定引入 ESLint——我们长期以来一直将 RuboCop 用于我们的 Ruby 代码,但直到现在还没有任何 JavaScript linting 或标准。
这大部分工作正常,但有两个问题:
-
ESLint 不检测在一个文件中声明并在另一个文件中使用的全局变量,因此它们在声明文件中失败
app/assets/javascripts
,而在另一个文件中no-unused-vars
失败 -
ESLint 不检测 ERB 文件中的调用,因此这些调用失败
no-undef
,例如no-unused-vars
<%= radio_button_tag(:myattr,onchange: 'myJSFunc()') %>
到目前为止,我找到的唯一解决方案是添加一堆 <input type="button" onclick="myOtherFunc()">
和 /* exported */
注释,例如
/* global */
有没有更好的方法
- 让 ESLint 知道资产管道的全局 JavaScript“加载路径”?
- 让 ESLint 检测 ERB 文件中的用法?
作为参考,我正在调用 ESLint:
/* exported formReset */
/* exported hardReset */
/* exported checkStackPassInputs */
/* global hideBlock */
/* global showBlock */
/* global enableElement */
/* global disableElement */
这是我正在使用的 npx eslint app/assets/javascripts
:
.eslintrc.yml
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。