9

许多 grunt.js-script 以:

/*global module:false*/
module.exports = function(grunt) {

但是第一行评论的原因是什么?

4

1 回答 1

16

它是 JSLint 或 JSHint 的指令。它告诉 JSLint/JSHint 解析器该标识符module是在别处定义的,因此它不会抛出错误,告诉您module未定义。没有它,解析器将遇到对的引用module并认为您正在尝试引用未定义的变量。

来自JSLint 文档

JSLint 还识别一个/*global*/指令,该指令可以向 JSLint 指示此文件中使用的变量是在其他文件中定义的。该指令可以包含一个逗号分隔的名称列表。

JSHint 文档

除了选项之外,您还可以让 JSHint 知道它应该期望哪些全局变量:

    /*global DISQUS:true, jQuery:false */

在上面的示例中,JSHint 将允许您覆盖DISQUS,但如果您尝试覆盖,则会抱怨jQuery

于 2012-12-20T13:26:42.317 回答