VarName 未定义,请修复或添加 /*global VarName*/ Cloud9

2024-04-22

客观的

阻止 Cloud9 IDE 向我发出警告消息。

背景

我正在使用 Cloud9 IDE 编写 JavaScript,无论何时使用另一个文件(同一文件夹中)中的类,我都会收到警告消息:

VarName 未定义,请修复或添加 /*global VarName*/

现在这让我很烦恼,我想解决它。

显而易见的解决方案是添加评论/*global VarName*/并完成它,但我不认为这是一个好的做法。

我尝试过的

经过研究,我发现了 JavaScriptimport功能性 https://developer.mozilla.org/en/docs/web/javascript/reference/statements/import。理论上,这可以让我做类似的事情import "myOtherJsFile"并完成它。

这将是解决该问题的一个很好的标准化解决方案,因为许多其他语言也采用相同的方法。

Problem

然而,即使添加上述行后,我仍然收到警告。它不会消失。

问题

  1. 难道我做错了什么?
  2. 有没有办法在不向我的代码添加注释的情况下删除警告?
  3. 还有其他方法可以实现我的目标吗?

创建后官方论坛上的帖子 https://community.c9.io/t/varname-is-not-defined-please-fix-or-add-global-varname-cloud9/7316/7我现在有足够的信心在这里发布我学到的东西。

Summary

讨论了解决该问题的四种方法:

  1. 禁用项目内的变量警告
  2. 创建一个.eslintrc包含所有全局变量的文件
  3. Use of import and export
  4. 添加评论/*global varName*/在文件顶部

解决方案1

为了避免出现该消息,只需关闭项目设置中的“标记未定义变量”选项即可。

尽管此解决方案可行,但它只会停止标记所有未定义的变量,甚至是您希望标记的变量。因此,我不推荐这种方法。

解决方案2

人们还可以创建一个.eslintrcthink 文件包含所有全局变量,如下所示:

{
    "globals": {
        "var1": true,
        "var2": false
    }
}

有关配置的更多信息:http://eslint.org/docs/user-guide/configuring http://eslint.org/docs/user-guide/configuring

这种方法的问题是,每次创建、删除或更改全局变量时,都必须更新全局变量文件。

这很快就会变得很麻烦,我什至不打算讨论大型项目的维护影响,这很快就会成为一场噩梦。

在我看来,这是一个技术解决方案,但并不实用。

解决方案3

首选解决方案,因为它仅依赖于 JavaScript,并且与其他语言的导入和导出功能非常相似。

然而,这种方法的问题是,在撰写答案时,没有浏览器支持export也不import关键词:

  • https://developer.mozilla.org/en/docs/web/javascript/reference/statements/import https://developer.mozilla.org/en/docs/web/javascript/reference/statements/import
  • https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export

将来这可能会改变,但现在就是这样,所以我们也不能使用这个解决方案。

解决方案4

通过排除部分,由于解决方案一和二要么容易产生巨大的副作用,要么存在巨大的缩放问题,所以这是我暂时使用的解决方案。

它没有副作用,由于其与其他文件的独立性,可扩展性非常好,最重要的是,一旦解决方案 3 可供使用,就可以很容易地通过调用来替换注释。import关键词。

结论

目前,解决方案 4 是最佳实践。然而,一旦浏览器添加了对解决方案 3 的支持,就应该使用它来代替解决方案 4。

Credits

特别感谢 Harutyun Amirjanyan 的坚韧、耐心和指导,帮助我解决了这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VarName 未定义,请修复或添加 /*global VarName*/ Cloud9 的相关文章

  • Javascript .includes 函数无法与对象数组一起正常工作[重复]

    这个问题在这里已经有答案了 我有一个正在使用的对象数组 includes 功能 我正在使用数组中的对象搜索该数组 对象是相同的 但似乎没有匹配项 我已将问题复制到这把小提琴 https jsfiddle net 6dua0u0n 代码也在下
  • Soundcloud自定义播放器动态添加和播放歌曲

    我在用soundcloud自定义播放器 https github com soundcloud soundcloud custom player创建一个可以播放所有歌曲的播放器 我的网站 当我只放置任何曲目或帖子的静态网址时 这效果非常好
  • 如何编写三元运算符(又名 if)表达式而不重复自己

    例如 这样的事情 var value someArray indexOf 3 1 someArray indexOf 3 0 有更好的写法吗 再说一遍 我并不是在寻求上述问题的答案 只是一个在三元运算符表达式中可能重复操作数的示例 就我个人
  • JavaScript 和数据库连接

    javascript可以直接访问数据库吗 我觉得我的问题是反问 因为这是一个安全问题 但这有可能吗 有可能的 有了新的html5功能 js可以通过WebSql连接 一个活生生的例子 http html5demos com database
  • 单击按钮时执行 python 脚本

    我有一个带有一个按钮的 HTML 页面 当我们单击该按钮时 我需要执行一个 python 脚本 并返回到包含结果的同一 HTML 页面 所以我需要对返回值进行一些验证并执行一些操作 这是我的代码 HTML
  • 使用 ChartJS v2.0 自定义图例

    我正在尝试在 ChartJS v2 0 中创建自定义图例模板 在 ChartJS v1 中 我只是向新的 Chart 构造函数添加了一个属性 例如 legendTemplate ul li span style background col
  • 字符串编码器固定大小输出

    我接到一个任务 需要编写一个具有以下要求的编码器 输入 1 到 8 位的整数 即 12345678 2352 76543 输出 固定大小的 6 位代码 可以包含任何字母数字和符号 a z A Z 0 9 该操作必须是可逆的 因此给定一个代码
  • Raphael JS 中的动画字体大小是否有流畅的过渡可能性?

    到目前为止似乎它不流畅 但波涛汹涌 例如 如果您有一个 font size 14 的状态属性 并且想要以动画方式显示 font size 16 的状态 则过渡看起来并不平滑 它分两步跳跃 首先更改为 15 然后更改为 16px 可以强迫它看
  • 弹出窗口显示来自 php 和 javascript 的结果

    我正在尝试实现 javascript 来显示 php 的结果 基本上 我有一个登录页面 对于登录失败 我希望结果显示在弹出窗口中 而不是仅仅用 php 回显它们 我尝试实现警报框 但看起来我错过了一些东西 成功登录将被重定向到logged
  • Chrome 的萤火虫

    谁能推荐一个类似于 Firebug 的不错的 Google Chrome 扩展程序 我确实看到这里有几个类似的问题 但答案似乎非常过时 Thanks It s built in Press Ctrl Shift I Or Tools gt
  • webpack 5 中是否可以让不同的入口包到不同的输出路径

    我正在使用 webpack 打包 google chrome 扩展 我想将文件夹结构保留在 dist 文件夹中 例如 我想将所有弹出资源打包在dist popup 这是我现在的配置 const path require path const
  • 从网站保存嵌入的 pdf

    我正在编写一个小型 C 应用程序来管理供应商提供的 化学品 安全数据表 目前 我手动搜索该化学品并保存 pdf 并在我的程序中添加指向 pdf 的链接 问题是我还有很多化学品需要处理 所以最好将过程自动化 例如 化学品的部件号如下 2710
  • 在 JavaScript onClick 事件处理程序中转义双引号

    下面的简单代码块可以在静态 HTML 页面中提供 但会导致 JavaScript 错误 您应该如何转义中嵌入的双引号onClick处理程序 即 xyz 请注意 HTML 是通过从数据库中提取数据动态生成的 其中的数据是其他可能带有单引号或双
  • 在javascript中调用c#函数[重复]

    这个问题在这里已经有答案了 可能的重复 从 Javascript 调用 ASP NET 函数 https stackoverflow com questions 3713 call asp net function from javascr
  • 在单选按钮选择上提交 Rails 表单

    我有以下 Rails 表单 有效 但我想删除 Submit tag 并在选择单选按钮后立即提交表单 我怎么做 p nbsp nbsp p p p 所以我找到了精确的解决方案 感谢输入人员 它帮助我重新定义了我的谷歌搜索
  • 检测 Service Worker 离线状态的最佳实践

    我有一个服务工作者应该缓存一个offline html客户端没有网络连接时显示的页面 然而 有时它会认为导航器已离线 即使它并未离线 那是 navigator onLine false 这意味着用户可能会得到offline html而不是实
  • 是否可以使用 JavaScript 检查加载的图像大小

    这是一个完全愚蠢的问题 但我只是想澄清我的疑问 当图像加载时 我们可以使用以下命令检查加载状态onload or oncomplete事件 但我只是想知道有多少部分图像是使用 JavaScript 加载的 真的可能吗 我的问题是 我们可以从
  • 无法定义 set 和 get 方法

    尝试使用访问器定义属性时出现错误 这是我的代码 var person Object defineProperty person birthYear value 1997 writable true enumerable true confi
  • 从 BLOB 打印 PDF

    我从外部 API 获取 PDF 文件 使用此代码我可以正确下载该文件 var req new XMLHttpRequest req open POST url true req responseType blob req setReques
  • 关闭网站的 IE 8 兼容模式

    我的公司使用IE8作为默认浏览器 并且默认为所有内联网站点设置兼容模式 我正在构建一个在关闭兼容模式时可以工作的 Intranet 站点 我正在使用 Reset css 和几个开源 JavaScript 程序 例如数据表 我想做的是强制关闭

随机推荐