我有一个 GULP 的任务文件,用于使用 babelify 使用 JSX 代码编译 js 文件,但无法正常工作

I have a task file of GULP for compile js file with JSX code using babelify, but not work it

我有一个 React 项目,我已经安装了 babelify,还有 gulp,当我使用 gulp 命令时,它可以完美运行并生成我的输出文件,但是如果我添加 JSX代码到我的 app.js 文件,向我发送以下错误:

> events.js:160
>> throw er; // Unhandled 'error'
> SyntaxError C:/xxxxx/xxxxx/xxxx/myProject/source/app.js: Unexpected token (4:18)

好像我没有安装babelify,但是已经用npm安装了

npm install --save-dev babelify

和gulp以及

npm install --global gulp

我的 app.js 文件有以下代码:

var React = require('react');
var ReactDOM = require('react-dom');

var listOfItems = <ul className="list-of-items">
 <li className="item-1">Item 1</li>
 <li className="item-2">Item 2</li>
 <li className="item-3">Item 3</li>
</ul>;
ReactDOM.render(listOfItems, document.getElementById('react-application'));

我的 gulp 文件是下一个...

var gulp = require('gulp');
var browserify = require('browserify');
var babelify = require('babelify');
var source = require('vinyl-source-stream');

gulp.task('default', function(){
  return browserify({entries: './source/app.js', debug: true})
    .transform(babelify)
    .bundle()
    .pipe(source('snapterest.js'))
    .pipe(gulp.dest('./build/'));
});

非常感谢您的帮助!

您能否在 gulp 文件中进行以下更改

.transform(babelify, {presets: ["es2015", "react"]})

然后

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

然后 运行 gulp.. 它应该工作