首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodeKit中未定义JSHint Backbone

CodeKit中未定义JSHint Backbone
EN

Stack Overflow用户
提问于 2012-08-01 06:42:45
回答 2查看 5.4K关注 0票数 8

一个小的测试应用是这样设置的:

init.js

代码语言:javascript
复制
//@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

代码语言:javascript
复制
(function() {
    window.app.Ride = Backbone.Model.extend({

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

CodeKit的JSHint检查报告Backboneconsole都未定义。这里我漏掉了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-01 06:52:28

JSHint不会运行您的代码,因此它不知道您在其他文件中包含的任何模块。您必须明确地告诉它您计划在Ride.js中使用的所有全局变量。在您的例子中,它是:/*global Backbone */。默认情况下不允许使用console,因为在发布软件时填充console.log调用并不是一个好主意。要删除此警告,可以使用/*jshint devel:true */

所以最终你的文件应该看起来像这样才能通过JSHint检查:

代码语言:javascript
复制
/*jshint devel:true */
/*global Backbone */

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

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

更多信息请点击此处:http://www.jshint.com/options/

票数 18
EN

Stack Overflow用户

发布于 2013-01-28 07:25:54

我是布莱恩。CodeKit会在一个完整的全局上下文中检查您的文件。(也就是说,它首先将它们组合在一起,因此在前面的文件中声明的变量在后面的文件中也是有效的。这假设您使用CodeKit来组合文件,或者使用@ CodeKit -prepend/append语句,或者使用在CodeKit本身中设置的拖放导入链接)。如果您正在以其他方式组合JS文件(例如构建脚本),那么CodeKit不知道这些文件是放在一起的,因此它会分别检查每个文件。

您可以在上面的答案中使用注释标志,也可以直接在CodeKit中配置JSHint的选项。查看preferences窗口(如果您的项目使用项目级设置,则查看项目设置区域)。您还可以在其中输入自定义全局变量,这将删除这些警告。

干杯!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11750093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档