一个小的测试应用是这样设置的:
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都未定义。这里我漏掉了什么?
发布于 2012-08-01 06:52:28
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/
发布于 2013-01-28 07:25:54
我是布莱恩。CodeKit会在一个完整的全局上下文中检查您的文件。(也就是说,它首先将它们组合在一起,因此在前面的文件中声明的变量在后面的文件中也是有效的。这假设您使用CodeKit来组合文件,或者使用@ CodeKit -prepend/append语句,或者使用在CodeKit本身中设置的拖放导入链接)。如果您正在以其他方式组合JS文件(例如构建脚本),那么CodeKit不知道这些文件是放在一起的,因此它会分别检查每个文件。
您可以在上面的答案中使用注释标志,也可以直接在CodeKit中配置JSHint的选项。查看preferences窗口(如果您的项目使用项目级设置,则查看项目设置区域)。您还可以在其中输入自定义全局变量,这将删除这些警告。
干杯!
https://stackoverflow.com/questions/11750093
复制相似问题