6

这是我的 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 w/react 编写)。

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

4

1 回答 1

11

不应再使用 Reactify。你没有说你使用的是什么版本,但从Babel 6开始, “预设”是实现编译的标准方式。

运行以下

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/'));
});

有关更多信息,请参阅选项页面

于 2015-12-08T18:02:03.770 回答