我有一个文件testboot.js
,我想像这样注入import语句:
import "../app/app.spec";
import "../app/navbar/navbar.spec";
请注意,import语句与testboot.js
相关。我无法使用gulp找出干净的方法。这是我的部分任务:
gulp.task("inject", function (cb) {
gulp
.src("src/client/app/**/*.spec.js")
.pipe(debug())
.pipe(filenames("inject"))
.on("end", function () {
filenames.get("inject").map(function(e){
// do something
});
util.log("in end"); // never called
cb();
});
});
但永远不会调用“结束”处理程序。任何人都可以帮我解决这个问题吗?谢谢。
答案 0 :(得分:1)
你正在听错事件。来自Node.js documentation on Stream
:
isAtomic
和'finish'
事件分别来自父'end'
和Writable
类。调用Readable
并且'finish'
处理了所有块后触发了stream.end()
事件,stream._transform()
在输出所有数据后触发'end'
{ {1}}已被调用。
这意味着你要么必须监听stream._flush()
事件:
'finish'
或者您必须确保调用stream._flush()
中的回调,例如与gulp.task("inject", function (cb) {
gulp
.src("src/client/app/**/*.spec.js")
.pipe(debug())
.pipe(filenames("inject"))
.on("finish", function () {
filenames.get("inject").map(function(e){
// do something
});
util.log("in end");
cb();
});
});
:
gulp.dest()