有条件地在browserify上运行转换

时间:2017-01-24 09:46:41

标签: gulp ecmascript-6 browserify

我添加了babelify转换,并且我注意到我的mainScripts任务现在需要大约10秒而不是之前的0.5秒。

我希望仅在环境或产品时应用 .transform(" babelify",{presets:[" es2015"]})为了加快开发过程中的任务。

我确定当前环境的功能

- Does HAWQ will distribute data to the old data-nodes ? What will happen actually?
- Does HQWQ will redistribute the data of table 'table_random' overall the cluster?

我的脚本任务:

var isLocal = function() {
  return argv.env === 'localdev' || argv.env === 'dev';
};

如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

browserify的调用会返回绑定程序,而transform调用只是将其链接起来,因此您可以选择通过执行以下操作来调用transform

gulp.task('mainScripts', function() {
  var bundler = browserify('./app/app.js', {
    debug: true
  });
  if (!isLocal()) {
    bundler = bundler.transform("babelify", { presets: ["es2015"] });
  }
  return bundler
    .bundle()
    .on('error', function(err) {
      ...
    }
    ...

或者,您可以查看watchify的一些gulp食谱,这可以大大提高您的增量构建时间。

答案 1 :(得分:0)

如何使用.plugin

var babelify = function (b) {
  return isLocal()
    ? b
    : b.transform("babelify", {presets: ["es2015"]});
};

// .plugin(babelify)

browserify Plugins部分说:插件take the bundle instance as their first parameter

  

对于某些更高级的用例,转换不能充分扩展。插件是将bundle实例作为第一个参数,将选项哈希作为第二个参数的模块。

正在应用的插件的格式如下:

var babelify = function (b) {
  return isLocal()
    ? b
    : b.transform("babelify", {presets: ["es2015"]});
};

gulp.task('mainScripts', function() {
     return browserify('./app/app.js', {
         debug: true
       })
       .plugin(babelify)
       .bundle()
       .on('error', function(err) {
         ...
       }
       ...