Gulp,Reactify和Babelify没有一起变换

MNZ*_*NZT 6 browserify reactjs gulp babeljs reactify

这是我的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/'));
});
Run Code Online (Sandbox Code Playgroud)

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

我完全失去了,真的很感激帮助.

Kye*_*ica 11

不应再使用Reactify.你没有说出你的版本,但截至Babel 6 "预置版"是实现编译的标准方法.

运行以下

npm install save-dev babel-preset-react babel-preset-es2015
Run Code Online (Sandbox Code Playgroud)

您还应该确保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/'));
});
Run Code Online (Sandbox Code Playgroud)

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