是什么导致/ *全局模块:false * / in grunt.js

许多grunt.js脚本开始于:

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

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

这是JSLint或JSHint的指令。 它告诉JSLint / JSHintparsing器,标识符module是在别处定义的,所以它不会抛出一个错误,告诉你module是未定义的。 没有它,parsing器会遇到对module的引用,并认为你正在尝试引用一个未定义的variables。

从JSLint文档 :

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

和JSHint文档 :

除了选项之外,你可以让JSHint知道它应该期望的全局variables:

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

在上面的例子中,JSHint将允许您重写DISQUS ,但是如果您尝试重写jQueryDISQUS抱怨。