2013-05-19 26 views
1

我正在使用JSHint和QUnit运行Grunt构建。 我第一次试运行,我得到如下:与QUnit一起运行Grunt时出现JSHint错误

Running "jshint:files" (jshint) task 
Linting test/libs/qunit-1.11.0.js...ERROR 
[L661:C22] W069: ['throws'] is better written in dot notation. 
QUnit.raises = assert[ "throws" ]; 
[L1590:C33] W103: The '__proto__' property is deprecated. 
     return obj.__proto__; 

Warning: Task "jshint:files" failed. Use --force to continue. 

Aborted due to warnings. 

除了编辑QUnit源代码和使用--force,我该怎么做呢?

+0

配置Grunt,所以你只能对自己的文件运行JSHint而不是第三方文件? –

+0

听起来像一个很好的计划:) 我是新来的Grunt(与蚂蚁在过去工作)。我会怎么做? 'files:['gruntfile.js','src/**/*。js','test/**/*。js']' –

+0

这将对* src中的任何'.js'文件运行JSHint * 目录。如果你不把第三方文件放在那里,它就可以工作。 Grunt接受标准的全局模式,所以只包含正确的文件并不困难。 –

回答

2

为了扩展我的评论,假设Grunt> 0.4和grunt-contrib-jshint插件,你可以选择特定的文件来运行JSHint。所述JSHint咕噜插件接受标准glob模式:

grunt.initConfig({ 
    jshint: { 
     all: [ 
      'Gruntfile.js', 
      'lib/**/*.js', 
      'test/**/*.js' 
     ] 
    } 
}); 

实施例(从JSHint咕噜插件自述)将LIB测试目录(和它们的子目录)内选择任何的.js文件,以及Gruntfile.js文件。我建议将第三方库从您的主目录lib目录中移出。一个常见的惯例是为这样的脚本添加一个供应商目录。

如果依靠第三方脚本通过NPM可用,你也可以简单地将它们包含在你的的package.json文件,显然离开node_modules目录你的咕噜配置的。然后,将由您的构建过程将必要的文件移动到您的应用程序结构中的正确位置。