[英]How do I resolve dependencies when linting single javascript files with grunt?
我想将我的应用程序逻辑分成多个Javascript文件,以保持理智和开发人员友好,存储在/ src文件夹中。 在构建过程中,这些文件应该被打印并连接到/dist/app.js中。 我正在使用grunt进行构建过程,因为它已经提供了方便的lint和concat任务。
+ |- grunt.js |- readme |-vendors |-backbone.js |- src |- core.js |- user.js |- dist |-app.js
我遇到了一个恼人的问题。 我将backbone.js用于应用程序结构,我的大多数源文件都是通过扩展Backbone.Model来定义模型。 当linting这些文件时,JSHint抱怨没有定义Backbone,这是正确的 - 骨干位于其自己的目录之外。 按照正确的顺序包含所有必要的脚本是我假设在html中完成的。 每个单独的源文件应该只知道自己。
我知道我可以通过将grunt.js中的lint的undef标志设置为false来抑制这些未定义的警告但是我想将它设置为true以便在我的应用程序中警告其他未定义的变量,因为它是一个常见的指向错别字的指针。 有没有一种干净的方法来告诉grunt(或lint)在linting之前要包含哪些文件? 我的构建过程或应用程序架构有问题吗? 或者这只是我必须忍受的东西?
jshint
选项允许您在grunt.js文件中指定来自您正在使用的其他库的全局变量列表:
jshint: {
options: {
curly: true,
eqeqeq: true,
immed: false,
latedef: true,
newcap: true,
noarg: true,
sub: true,
undef: true,
boss: true,
eqnull: true,
browser: true
},
globals: {
jQuery: true,
Backbone: true,
_: true
}
},
注意底部的globals
设置。 这允许JSHint忽略这些变量,但仍然运行你的undef: true
设置(如上所示)。
另一种方法(不依赖于grunt)是在js文件中添加jshint注释:
/* global Backbone, jQuery, _ */
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.