如何告诉JSLint/JSHint已定义了哪些全局变量

Emi*_*chi 72 javascript global-variables jslint jshint

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

MyProject.MyFreature.someFunction = function() { ... }
Run Code Online (Sandbox Code Playgroud)

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

"MyProject"未定义

我知道我可以访问每个JavaScript文件并在其/*global MyProject*/上添加注释.但我正在寻找一种方法来在某种配置文件中定义该注释,所以我不必逐个文件添加此注释.

选择中的某种选择config/jshint.yml会很好.

Epe*_*eli 78

对于JSHint,您可以使用创建.jshintrc项目目录

{
  "globals": { "MyProject": true }
}
Run Code Online (Sandbox Code Playgroud)

  • 关于使用它的一个小注释:为`angular`和`$`等库设置`false`.但是对于想要重新定义自己的全局变量,请将其设置为"true",例如`myApp`. (11认同)
  • 谢谢。但是由于我使用的是jshint_on_rails,所以我可以只设置以下选项:predef:config / jshint.yml上的'MyProject' (2认同)

zev*_*ero 44

这仅适用于全局变量

/* global MyProject */
Run Code Online (Sandbox Code Playgroud)

在你的情况下,你需要

/* exported MyProject */
Run Code Online (Sandbox Code Playgroud)