9

多くの grunt.js-script は次で始まります。

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

しかし、最初の行のコメントの原因は何ですか?

4

1 に答える 1

16

これは、JSLintまたはJSHintのディレクティブです。識別子が他の場所で定義されていることをJSLint/JSHintパーサーに通知するmoduleため、未定義であることを通知するエラーはスローされませんmodule。これがないと、パーサーはへの参照に遭遇moduleし、未定義の変数を参照しようとしていると見なします。

JSLintドキュメントから:

/*global*/JSLintは、このファイルで使用されている変数が他のファイルで定義されていることをJSLintに示すことができるディレクティブも認識します。ディレクティブには、名前のコンマ区切りリストを含めることができます。

そして、JSHintドキュメント

オプションに加えて、JSHintにどのグローバル変数を期待すべきかを知らせることができます。

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

上記の例では、JSHintを使用するとオーバーライドできますが、オーバーライドDISQUSしようとすると文句を言いますjQuery

于 2012-12-20T13:26:42.317 に答える