如何使用gulp捆绑外部依赖项

时间:2016-06-28 16:48:44

标签: gulp browserify

我试图将外部commonjs模块(react,react-dom)与一些普通的ES5文件(如pollyfills.js)捆绑在一起。

我可以使用browserify.require捆绑外部模块

var externalBundler = browserify();
config.externalModules.forEach(externalBundler.bundle);
return externalBundler.bundle()
  .pipe(source("external.js"))
  .pipe(buffer())
  .pipe(sourcemaps.init({ debug: true, loadMaps: true }))
  .pipe(uglify())
  .on('error', gutil.log)
  .pipe(sourcemaps.write('./'))
  .pipe(gulp.dest('./dist/'));

和其他使用gulp.concat的脚本,但是我很难将它们放在一起。

1 个答案:

答案 0 :(得分:0)

我能够像这样组合管道:

gulp.task('bundle-externalscripts', function () {
  var externalBundler = browserify({ debug: true });
  for (var module of config.externalModules) externalBundler.require(module);

  var globalScripts = gulp.src(paths.scripts);

  var externalModules = externalBundler.bundle()
    .pipe(source("externalmodules.js")) //always convert to vinyl source stream
    .pipe(buffer());                //in buffered mode

  return merge(globalScripts, externalModules)
    .pipe(sourcemaps.init({ debug: true, loadMaps: true }))
    .pipe(concat("external.js"))
    .pipe(uglify())
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest('./dist/'));
});