8

小さなテスト アプリは次のように設定されます。

init.js:

//@codekit-prepend "vendor/jquery-1.7.2.js"
//@codekit-prepend "vendor/underscore.js"
//@codekit-prepend "vendor/backbone.js"

// Setup namespace for the app
window.app = window.app || {};

//@codekit-append "models/Ride.js"

Ride.js:

(function() {
    window.app.Ride = Backbone.Model.extend({

        initialize: function() {
            console.log("Ride initialized");
        }
    });
})();

CodeKit の JSHint チェックは、 と の両方が定義されていないことを報告しBackboneますconsole。ここで何が欠けていますか?

4

2 に答える 2

18

JSHint はコードを実行しないため、他のファイルに含まれているモジュールを認識しません。で使用する予定のすべてのグローバル変数について具体的に伝える必要がありますRide.js。あなたの場合は次のようになります/*global Backbone */。コールconsoleがいっぱいになった状態でソフトウェアを出荷することはあまり良い考えではないため、デフォルトでは許可されていません。console.logこの警告を削除するには、 を使用できます/*jshint devel:true */

したがって、JSHint チェックに合格するには、最終的にファイルは次のようになります。

/*jshint devel:true */
/*global Backbone */

(function() {
    window.app.Ride = Backbone.Model.extend({

        initialize: function() {
            console.log("Ride initialized");
        }
    });
})();

詳細はこちら: http://www.jshint.com/options/

于 2012-07-31T22:52:27.847 に答える
2

ここにブライアン。CodeKit、完全なグローバルコンテキストでファイルをチェックします。(つまり、最初にそれらを結合するため、前のファイルで宣言された変数は後のファイルで有効になります。これは、CodeKitを使用して、@ codekit-prepend/appendステートメントまたはドラッグアンドドロップインポートリンクセットのいずれかでファイルを結合することを前提としています。 CodeKit自体でアップ)。JSファイルを別の方法(ビルドスクリプトなど)で結合している場合、CodeKitはファイルが一緒になっていることを認識しないため、それぞれを個別にチェックします。

上記の回答でコメントフラグを使用するか、CodeKitでJSHintのオプションを直接構成できます。環境設定ウィンドウ(または、プロジェクトでプロジェクトレベルの設定を使用している場合はプロジェクト設定領域)を参照してください。そこにカスタムグローバルを入力することもできます。これにより、これらの警告が削除されます。

乾杯!

于 2013-01-27T23:25:54.160 に答える