我正在尝试编写一个 gulp 插件watchify
,以便我将文件通过管道传输到其中。问题是我的任务从未真正“完成”,因为它坐在那里并监视一堆文件并根据需要重新构建。
那么如何“通过”这个插件发送代码呢?
现在,我调用插件的任务被简化为:
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()
}
}
现在这适用于.js
我的 glob 找到的第一个文件。但是,任何其他文件实际上都不会到达我的插件,我假设这是因为我从不调用cb()
.
那么我该怎么做呢?有没有办法在不调用的情况下继续写入流cb()
,这会关闭它,但仍然允许以前的管道继续?
换句话说:
- index.js
watchify()
- 管道
dest()
很好,即使我self.push()
一次又一次地打电话 cb()
从来没有打电话
- index2.js
watchify()
在被要求之前从不调用cb()
,index.js
但这会“关闭”index.js
管道