browserify api使用文件没有吞噬成功触发callback

有人知道一旦browserify已经写入输出到磁盘触发callback的方式?

var fs = require('fs'); var browserify = require('browserify'); var b = browserify({standalone: 'MyAppModules'}); b.add('./browserifyMain.js'); b.bundle().pipe(fs.createWriteStream(__dirname + '/public/js/bundle2.js')); 

这工作,但我需要运行一个rsync只有当该包build立。

我试图添加一个基于这个职位的“on”事件监听器: 如何使用新的Browserify API?

 var fs = require('fs'); var browserify = require('browserify'); var b = browserify({standalone: 'MyAppModules'}); b.add('./browserifyMain.js'); b.bundle().pipe(fs.createWriteStream(__dirname + '/public/js/bundle.js')).on('end', function(){ console.log( 'finished writing the browserify file' ); }); 

但日志永远不会返回,所以我假设这不起作用:/

另外,尝试,但也没有工作:

 var fs = require('fs'); var bundleFs = fs.createWriteStream(__dirname + '/public/js/bundle.js'); var browserify = require('browserify'); var b = browserify({standalone: 'MyAppModules'}); b.add('./browserifyMain.js'); b.bundle().pipe( bundleFs ) bundleFs.on('end', function(){ console.log( 'finished writing the browserify file' ); }); return; 

(尽pipe如此,所有上面的文件都是正确的写入文件)

       

网上收集的解决方案 "browserify api使用文件没有吞噬成功触发callback"

http://www.beingyesterday.com/write-browserify-to-file-using-the-api/

我find了答案,并添加到我的博客…倾听“完成”事件。 这是在quilk的browserify包中使用,以简单的JSON文件控制更轻松https://johnc1984.github.io/quilk/Modules_baked_in/browserify_bundle.html

 var fs = require('fs'); var browserify = require('browserify'); module.exports = function( callback ) { callback = callback || function(){}; // Create a write stream for the pipe to output to var bundleFs = fs.createWriteStream(__dirname + '/public/browserify/bundle.js'); var b = browserify({standalone: 'nodeModules'}); b.add('./browserifyMain.js'); b.bundle().pipe(bundleFs); //now listen out for the finish event to know when things have finished bundleFs.on('finish', function () { console.log('finished writing the browserify file'); return callback(); }); };