Fla*_*nix 6 javascript import cloud9-ide cloud9
阻止Cloud9 IDE向我发出警告消息.
我正在使用Cloud9 IDE编写JavaScript代码,无论我在哪里使用其他文件中的类(在同一文件夹中),我都会收到警告消息:
VarName未定义,请修复或添加/*全局VarName*/
现在这让我烦恼,我想解决它.
显而易见的解决方案是添加注释/*global VarName*/并完成它,但我不相信这是一个好的做法.
经过研究,我发现了JavaScript import功能.理论上,这将允许我做类似的事情import "myOtherJsFile"并完成它.
对于该问题,这将是一个很好的标准化解决方案,因为许多其他语言采用相同的方法.
然而,即使在添加上述行之后,我仍然会收到警告.它不会消失.
在官方论坛上创建一个帖子后,我现在有足够的信心在这里发布我学到的东西了.
讨论了解决问题的四种方法:
.eslintrc包含所有全局变量的文件import和export/*global varName*/文件顶部的注释为了避免该消息,可以简单地关闭项目设置中的"标记未定义变量"选项.
虽然这个解决方案可行,但它只会停止标记所有未定义的变量,甚至是你想要标记的变量.出于这个原因,我不推荐这种方法.
也可以.eslintrc使用所有全局变量创建一个思考文件,如下所示:
{
"globals": {
"var1": true,
"var2": false
}
}
Run Code Online (Sandbox Code Playgroud)
有关配置的更多信息:http://eslint.org/docs/user-guide/configuring
这种方法的问题是每次创建,删除或更改全局变量时,都必须更新全局变量文件.
这很快就会变得很麻烦,我甚至不会讨论对大项目的维护影响,这很快就会成为一场噩梦.
我看待它的方式,一个技术性的解决方案,但不实用.
首选解决方案,因为它仅依赖于JavaScript,与其他语言的导入和导出功能非常相似.
然而,这种方法的问题在于,在撰写答案时,没有浏览器支持export以及import关键字:
将来这可能会改变,但是现在它确实如此,所以我们也不能使用这个解决方案.
通过排除部件,由于解决方案一和二要么容易产生巨大的副作用,要么有巨大的缩放问题,这是我将暂时使用的解决方案.
它没有任何副作用,由于其对其他文件的独立性而非常好地扩展,最重要的是,一旦解决方案3可供使用,通过调用import关键字简单地替换注释将非常容易.
目前,解决方案4是最佳实践.但是,一旦浏览器添加了对解决方案3的支持,就应该使用它来代替解决方案4.
特别感谢Harutyun Amirjanyan坚持不懈,耐心和指导,帮助我解决这个问题.
| 归档时间: |
|
| 查看次数: |
5913 次 |
| 最近记录: |