使用Browserify构build脚本会创build一个空文件

我有一个简单的构build脚本,应该使用browserify将我所有的js模块打包成单个文件。 我有以下代码(来自http://www.forbeslindesay.co.uk/post/46324645400/standalone-browserify-builds )

function _browserify(srcPath, distPath) { var browserify = require('browserify'); var b = new browserify(); b.add(srcPath); b.bundle().pipe(_fs.createWriteStream(distPath)); console.log(' '+ distPath +' built.'); } 

但是当我运行它,我得到一个完全空的文件。 任何想法为什么?

好的,我在这个晚上肯定花了太多时间,但事实certificate这是一个asynchronous的问题。 你最有可能在那里得到一个错误,但是在错误callback有机会被调用之前,咕噜声正在消失。 grunt在每个任务的上下文中提供了一个漂亮的asynchronous方法,你必须让grunt知道这是一个asynchronous任务(因此需要等待所有东西都是finito)。 就像是…

 grunt.registerTask('build', function () { var done = this.async(); browserify({ debug: true }) .add('./src/main.js') .bundle() .on('error', function (err) { console.log(err); }) .pipe(fs.createWriteStream('./target/bundle.js') .on('end', done); });