Browserify转换+ sourcemaps之间的区别当通过CLI运行时编程方式在Gulpfile?

我有一个使用Babelify变换的项目。 在我的NPM运行脚本中,使用Watchify有一个很好的工作stream程:

package.json snippet - "scripts": { "watch": "NODE_ENV=DEV watchify -d -e js/main.js -o dist/js/main.js -v" }, "main": "js/main.js", "browserify": { "transform": [ "babelify", "envify" ] } // npm run watch 

现在,我试图转移到Gulp来简化我的构build周期,但是当我以编程方式触发watchify / browserify转换和构build时,我似乎无法实现相同的捆绑JS文件。 这是我在我的gulpfile.js中尝试的:

 function createBundle(file) { var bundle = watchify(browserify({ entries: file.input, transform: [ babelify, envify({NODE_ENV: process.env.NODE_ENV}) ], debug: true, cache: {}, packageCache: {}, fullPaths: false, fileInfo: file })); bundle.on('update', function(e){ if(typeof e === 'object') { gutil.log(gutil.colors.cyan('Changes detected on: ')); for (var i = 0, len = e.length; i < len; i ++) { gutil.log(gutil.colors.magenta(e[i])); } } build(this); }); build(bundle); } function build(bundle) { return bundle.bundle().on('error', errorHandler) .pipe(source(bundle._options.fileInfo.output)) .pipe(gulp.dest('.'+bundle._options.fileInfo.destination)); } 

我也试图在createBundle中像这样应用我的转换和Watchify:

 var b = browserify({ entries: file.input, fileInfo: file, debug: true, cache: {}, packageCache: {}, plugin: [watchify], transform: [ babelify, envify({NODE_ENV: process.env.NODE_ENV}) ] }); 

为什么吞噬脚本和通过命令行运行生成不同的捆绑文件? 是否有一些固有的variables,我不考虑在我的gulpfile.js?