在gulp / browserify包上运行多个转换

我有一个React组件,我已经导出到一个包文件。 我已经成功地使用babelify转换它,但是,现在我想运行它envify。 我似乎无法弄清楚如何使用browserify运行多个转换。 我认为这一定是可能的,但我不知道我的语法稍微偏离了,或者如果我需要编写一个自定义的转换,或者我应该在我的package.json中指定转换。 这是我的大嘴文件中的代码:

var bundleComponent = function(bundler, source, component) { //bundler is just browserify('./client/components/TVScheduleTab/render.js') gutil.log('Bundling ' + component) return bundler //this throws an error .transform(babelify, envify({ NODE_ENV: 'production' })) .bundle() .on('error', function(e){ gutil.log(e); }) .pipe(source) .pipe(gulp.dest('output/')); }; 

你有没有尝试链接? 正确的解决scheme是在评论

  var bundleComponent = function(bundler, source, component) { //bundler is just browserify('./client/components/TVScheduleTab/render.js') gutil.log('Bundling ' + component) return bundler //this throws an error .transform(babelify) .transform(envify({ NODE_ENV: 'production' })) .bundle() .on('error', function(e){ gutil.log(e); }) .pipe(source) .pipe(gulp.dest('output/')); }; 

虽然这个答案出现在被接受的答案之后,并且被接受了,但是我想澄清一下,而不需要通过链接的github问题进行浏览。

链接,特别是envify ,应该是这样的:

 // NOTE: the "custom" part var envify = require('envify/custom'); gulp.task('build-production', function() { browserify(browserifyOptions) .transform(babelify.configure(babelifyOptions)) .transform(envify({ NODE_ENV: 'production' })) .bundle() .on('error', handleErrors) .pipe(source('app.js')) .pipe(buffer()) .pipe(uglify({ mangle: false })) .pipe(gulp.dest('./build/production/js')); });