Gulp、Reactify 和 Babelify 没有一起转换

Gulp, Reactify, and Babelify not transforming together

这是我的 gulpfile 代码:

gulp.task('react', function () {
  browserify('app/src/main.jsx')
    .transform(reactify)
    .transform(babelify)
    .bundle()
    .pipe(source('app.js'))
    .pipe(streamify(uglify()))
    .pipe(gulp.dest('dist/js/'));
});

只有第一个转换语句运行,因此由于缺少额外的转换而抛出错误(我在 ES6 和 JSX 中编写 / react)。

我完全不知所措,非常感谢帮助。

不应再使用 Reactify。你不说你是什么版本,但是Babel 6 "preset's" 是实现编译的标准方式。

运行以下

npm install save-dev babel-preset-react babel-preset-es2015

您还应该确保 Babelify 是最新的。然后你的 Gulp 配置变成

var babelify = require("babelify");
gulp.task('react', function () {
  browserify('app/src/main.jsx')
    .transform(babelify, {presets: ["es2015", "react"]})
    .bundle()
    .pipe(source('app.js'))
    .pipe(streamify(uglify()))
    .pipe(gulp.dest('dist/js/'));
});

有关详细信息,请参阅 options page