4

我想要一个 gulpfile,它首先将我的 es6 代码转换为 es5 并将其保存到一个目录,然后对其进行浏览器化(在每个文件上,而不仅仅是一个入口文件)并将其保存到另一个目录,最后我想将其缩小并放入它在 browserified 文件夹中作为 .min.js 文件。这是结果应该是什么样子的图表:

src/
  es6/
    index.js
    mod.js
  es5/
    index.js
    mod.js
  es5-browser/
    index.js
    index.min.js
    mod.js
    mod.min.js

到目前为止,这是我的 gulpfile,但我不断收到找不到模块错误:

var gulp = require('gulp');
var traceur = require('gulp-traceur');
var browserify = require('gulp-browserify');
var sourcemaps = require('gulp-sourcemaps');

gulp.task('es5ize', function () {
  return gulp.src('src/es6/**/*.js')
    .pipe(sourcemaps.init())
    .pipe(traceur({sourceMaps: true}))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest('src/es5'))
    .pipe(browserify({
      debug : true
    }))
    .pipe(gulp.dest('src/es5-browser'))
    ;
});

我知道我不应该使用 gulp-browserify 但我也无法获得类似的东西来使用乙烯基。

它一直工作到 browserify 步骤

我怎样才能让它工作?

编辑:

我希望能够将其保留在 gulp 中,而不必执行任何操作,因为我最终也想在此上使用 watchify

与此接近的所有其他示例首先让 browserify 创建一个包,然后操作该包,但这意味着它将始终启动我不想要的 browserifed。他们似乎还需要为 browserify 指定一个入口文件,但我想指定一个 glob 并让它转换匹配的所有内容

4

1 回答 1

1

您需要 traceur 编译为 commonjs 模块,以便 browserify 理解.pipe(traceur({modules: 'commonjs' }))

于 2014-09-12T10:34:34.983 回答