处理grunt.js中的*no files*错误
handling *no files* error in grunt.js
我正在写一些grunt插件。我使用this.files.forEach
来遍历源文件。这似乎是推荐的解决方案。一个任务的代码看起来,或多或少,像这样:
grunt.registerMultiTask(..., ..., function(){
// init
this.files.forEach(function (f) {
// do something
}
});
this.files
,控制台日志,看起来像这样:
[ { src: [Getter],
dest: 'tmp/external-sources.json',
orig: { src: [Object], dest: 'tmp/external-sources.json' } } ]
然而,当没有可识别的源文件时,我陷入了麻烦。据我所知,this.files.forEach
在现有文件上迭代,因此[Getter]
(不知道,那是什么)不会对不存在的文件执行迭代。
现在,这对我来说是个问题,因为我经常更改文件路径。如果我错误地配置了新路径,我不会得到关于无效路径的通知。处理这个问题的唯一方法是扫描长时间的控制台输出,这对于大型项目来说是非常令人沮丧的。我想在源列表为空时得到通知
问题是……实际上,题是:当给定任务/目标没有源文件时,我如何强制grunt大喊?*我可以全局改变这个行为吗?我的意思是,我能让grunt喊出所有任务的空源列表吗?我是不是误会了什么?如果有,请纠正我。
据我所知,
this.files.forEach
迭代现有的文件
files
对象包含所有在Gruntfile中定义的src
对象,包括不存在的文件/路径。所以它也会遍历不存在的路径。
[Getter]
(不知道,那是什么)不会对不存在的文件执行迭代
正确,files
对象中的src
方法只会获取一个现有文件。
我想在源列表为空时得到通知
你可以在orig.src
上迭代每个files
和错误句柄。
请注意,如果您的src
是undefined
或null
, grunt将警告您并中止,这是您正在寻找的行为。你可以使用--force
标志来继续,但我强烈反对这样做。
的例子:
Gruntfile.js
module.exports = function(grunt) {
grunt.initConfig({
myTask: {
dev: {
files: [
{src: 'existingFile.js', dest: 'newFile'},
{src: 'nonExistingFile.js', dest: 'newFile2'}
]
}
}
});
grunt.loadTasks('my_tasks');
grunt.registerTask('default', ['myTask']);
};
my_tasks/task.js
module.exports = function(grunt) {
grunt.registerMultiTask('myTask', '', function() {
this.files.forEach(function(f) {
f.orig.src.forEach(function(src) {
//do something with src
});
});
});
};
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 我如何修复包含在captcha的addthis中的错误
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- GWT应用程序中出现错误HTTP 404(“Script Tag Failure-no status available
- jQuery Ajax得到错误No Transport,状态为0
- 如何在没有 ESLint no-unused-var 错误的情况下公开全局 javascript 函数
- 带错误的Onsen UI导航:您不能提供no"ons页”;元素到“;ons导航器”;当返回第一页时
- No 'Access-Control-Allow-Origin'请求的资源上存在标头'错误
- 一直得到No 'Access-Control-Allow-Origin'XMLHttpRequest错误
- JavaScript错误no Object [Object Object]没有方法'dialog'
- 运行Grunt Express Server导致错误:enent: no such file or directory,
- 如何解决&;no method 'appendTo'错误
- 自动完成API错误:No 'Access-Control-Allow-Origin'标头存在于请求的资源
- AWS S3文件上传,获取No 'Access-Control-Allow-Origin'错误
- 处理grunt.js中的*no files*错误