ESLint 未定义/被赋值但未使用

Posted

技术标签:

【中文标题】ESLint 未定义/被赋值但未使用【英文标题】:ESLint not defined / is assigned a value but not used 【发布时间】:2021-04-09 13:08:02 【问题描述】:

我正在加载几个外部 JS 文件,并且在 CodeKit/LSLint(和 JSHint)中不断出现错误 - 即使在浏览器中查看时这两个脚本似乎都按预期工作

我所有的 JS 文件都加载在页面底部的关闭 </body> 标记下方,如下所示:

<script src="js/vendor/modernizr-3.11.2.min.js"></script>
<script src="js/vendor/rellax.min.js"></script>
<script src="js/vendor/aos.js"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>

我加载外部脚本的main.js 文件当前如下所示:

/* RELLAX */
var rellax = new Rellax('.rellax');
/* AOS */
AOS.init();

但返回以下错误:

任何想法我如何解决这个问题?我假设main.js 中的调用正在同一位置查找引用,但显然它们位于外部文件中。通常我会在一切正常时打开提示,但如果可能的话我想解决......我想以前我可能通过包装一个函数来解决这个问题,但这次没有用(因为我不使用jQuery?)

【问题讨论】:

【参考方案1】:

您可以指定这些是全局变量,这样 ESLint 就不会警告它们未定义。最简单的方法是将以下注释添加到您的 main.js 文件的顶部。

/* global Rellax:readonly, AOS:readonly */

或者,您可以像这样在 .eslintrc 文件中指定全局变量:


  "globals": 
    "Rellax": "readonly",
    "AOS": "readonly"
  

查看ESLint docs了解更多详情。

【讨论】:

谢谢,这很有趣,评论对我来说可能是最好的解决方案!我已在评论中添加,但在 var rellax = new Rellax('.rellax'); 行中仍然出现错误,指出“'relax' 已分配一个值但从未使用过。” 你在使用变量吗? 在文档中以这种方式使用它,但我没有看到任何理由我不能使用Rellax('.rellax');,除非我开始使用更多设置 - 我不是目前正在做!

以上是关于ESLint 未定义/被赋值但未使用的主要内容,如果未能解决你的问题,请参考以下文章

模块未定义且进程未在 Visual Studio 代码中的 eslint 中定义

函数被调用但未执行

无效属性:预期的数组,但未定义

未找到规则“导入/扩展”的 ESLint 定义

Swagger 文件安全方案已定义但未使用

Jest / ESLint 失败未定义