我想知道为什么我的jshint grunt任务如此死慢.这是简短的示例配置:
var config = {
jshint: {
scripts: ['**/*.js', '!node_modules/**']
},
watch: {
files: ['**/*.js', '!node_modules/**'],
tasks: ['jshint']
}
}
Run Code Online (Sandbox Code Playgroud)
这种模式是什么?如果我已正确理解了这些内容,则两个文件模式都使用grunt api来构建任务的文件列表.这种模式有效,它会过滤掉node_modules中的所有内容,但它会非常缓慢,因为在应用过滤器之前,grunt会递归地挖掘整个node_modules目录(~100 MB).
有没有办法真正告诉grunt甚至不看node_modules?
该示例配置在我的笔记本电脑上大约需要30秒.如果使用白名单模式而不是黑名单,则jshint任务只需几秒钟.但是白名单意味着我必须一直在寻找Gruntfile,如果我做任何重构等超级烦人的话.
当前列表模式如下所示:
var allJSFiles = [
'*.js',
'{browser,server,config,models,routes,tasks,schema,test,utils,views}/**/*.js',
'!browser/bower_components/**'
];
Run Code Online (Sandbox Code Playgroud)
你不能只是将你的JS文件添加到root下的新文件夹中吗?这样你可以node_modules通过不在列表中包含它来"忽略" .
示例文件夹结构
- root
- node_modules
- jshint
- src
// your bespoke code
Run Code Online (Sandbox Code Playgroud)
Grunt配置
var config = {
jshint: {
scripts: ['src/**/*.js']
},
watch: {
files: ['src/**/*.js'],
tasks: ['jshint']
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2691 次 |
| 最近记录: |