JSHint Backbone没有在CodeKit中定义

ipa*_*lic 8 javascript namespaces backbone.js jshint

一个小测试应用程序设置如下:

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"
Run Code Online (Sandbox Code Playgroud)

Ride.js:

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

        initialize: function() {
            console.log("Ride initialized");
        }
    });
})();
Run Code Online (Sandbox Code Playgroud)

CodeKit的JSHint检查报告这两个Backboneconsole没有定义.我在这里错过了什么?

Ant*_*yov 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");
        }
    });
})();
Run Code Online (Sandbox Code Playgroud)

更多信息:http://www.jshint.com/options/