【发布时间】:2014-08-08 03:02:08
【问题描述】:
我正在尝试为watchify 编写一个 gulp 插件,允许我将文件通过管道传输到其中。问题是我的任务从未真正“完成”,因为它坐在那里并监控一堆文件并根据需要重新构建。
那么我如何“通过”这个插件发送代码?
现在,我调用插件的任务被简化为:
gulp.src( '/path/to/js/*.js' )
.pipe( watchifyPlugin() )
.pipe( cfg.gulp.dest( '/path/to/build' ) )
我的watchifyPlugin 是:
module.exports = function( opts ){
return through.obj( function( file, enc, cb ){
// watchify file
self.push( data ); // whenever any .js files are updated
// never call cb()
}
}
现在这适用于我的 glob 找到的第一个 .js 文件。但是,任何其他文件实际上都不会进入我的插件,我假设这是因为我从未调用过cb()。
那么我该怎么做呢?有没有办法在不调用cb() 的情况下继续写入流,这会关闭它,但仍然允许以前的管道继续?
换句话说:
- index.js
watchify()- 到
dest()的管道很好,即使我一次又一次地打电话给self.push() -
cb()从未打过电话
- index2.js
-
watchify()在cb()调用index.js之前从未调用过,但这会“关闭”index.js管道
-
【问题讨论】:
标签: node.js stream gulp browserify watchify