【问题标题】:How to tell JSLint / JSHint what global variables are already defined如何告诉 JSLint / JSHint 已经定义了哪些全局变量
【发布时间】:2013-07-16 14:07:39
【问题描述】:

在我的项目中,我们有一些作为容器工作的全局变量:

MyProject.MyFreature.someFunction = function() { ... }

然后我在整个网站上使用该脚本,JSLint / JSHint 抱怨:

'MyProject' 未定义

我知道我可以转到每个 JavaScript 文件并在其顶部添加注释 /*global MyProject*/。但我正在寻找一种在某种配置文件中定义该注释的方法,因此我不必逐个文件添加此注释。

config/jshint.yml 中的一些选项会很好。

【问题讨论】:

  • 您是在使用 Web 应用程序(例如 jshint.com)还是使用 node 运行它们?
  • 我使用 rake 作为任务运行。实际上我正在使用 jshint_on_rails
  • 这解释了我没听说过的 'config/jshint.yml' 文件。

标签: javascript global-variables jslint jshint


【解决方案1】:

对于 JSHint,您可以在您的项目目录中创建 .jshintrc

{
  "globals": { "MyProject": true }
}

【讨论】:

  • 谢谢。但是由于我使用的是 jshint_on_rails,所以我可以设置这个选项:predef: 'MyProject' on config/jshint.yml
  • 你应该在你的问题中提到这一点:)
  • 你说得对,我错过了那部分。下次我会记住的。谢谢
  • 只是一个关于使用这个的小提示:将false 用于angular$ 等库。但是把它放在true 上,用于你想要重新定义自己的全局变量,比如myApp
【解决方案2】:

这仅适用于全局

/* global MyProject */

你需要

/* exported MyProject */

【讨论】:

  • 如果您使用的是一个 JavaScript 文件,这是一个很好的答案,谢谢!
【解决方案3】:

JSLint 在选项下方有一个文本区域,其中显示predefine global variables here。在运行检查之前,只需在其中添加变量名称即可。

JSHint 不允许您添加全局变量,但您可以取消选中 When variable is undefined 选项以禁止显示该警告。

JSHint 库也有全局参数,如果你将它作为库运行的话。 . .详情在这里:http://jshint.com/docs/

【讨论】:

  • 听起来他们不是在使用网络界面 - But I'm looking a way to define that comment in some sort of config file so I don't have to go file by file adding this comment.Some kind on option in the config/jshint.yml would be nice
  • 我刚刚找到了,config/jshint.yml下的'predef'属性。这是一个逗号分隔的属性。谢谢!
  • 值得一提的是predefexists in JSLint too
  • 鉴于带有 Web Essentials 的 Visual Studio 2013 以及解决方案文件夹和项目子文件夹的常规层次结构,您可以将其放在解决方案根文件夹中。
  • 不当投票。直到留下这个答案之后,这个问题才清楚地表明正在使用 Rails。 +1
猜你喜欢
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-04
  • 2013-06-25
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
相关资源
最近更新 更多