我刚开始用gulp和babel在一起。我创建了一个构建任务(下面的简化版本):
var gulp = require('gulp');
var babel = require('gulp-babel');
gulp.task('build', () => {
return gulp.src('src/components/App.jsx')
.pipe(babel())
.pipe(gulp.dest('build'))
});我的文件src/components/App.jsx看起来像:
/** @jsx React.DOM */
import React, {Component} from 'react';
class App extends Component {
render() {
return <div>Example</div>
}
}
export default App;我得到的错误是:
events.js:141
throw er; // Unhandled 'error' event
^
SyntaxError: /Users/user/src/components/app.jsx: Unexpected token (8:6)
6 | render: () => {
7 | return (
> 8 | <div>Test</div>
| ^
9 | )
10 | }
11 | });
at Parser.pp.raise (/Users/user/node_modules/gulp-babel/node_modules/babel-core/node_modules/babylon/lib/parser/location.js:24:13)
at Parser.pp.unexpected (/Users/user/node_modules/gulp-babel/node_modules/babel-core/node_modules/babylon/lib/parser/util.js:91:8)
at Parser.pp.parseExprAtom (/Users/user/node_modules/gulp-babel/node_modules/babel-core/node_modules/babylon/lib/parser/expression.js:514:12)
at Parser.pp.parseExprSubscripts (/Users/user/node_modules/gulp-babel/node_modules/babel-core/node_modules/babylon/lib/parser/expression.js:267:19)
at Parser.pp.parseMaybeUnary (/Users/user/node_modules/gulp-babel/node_modules/babel-core/node_modules/babylon/lib/parser/expression.js:247:19)
at Parser.pp.parseExprOps (/Users/user/node_modules/gulp-babel/node_modules/babel-core/node_modules/babylon/lib/parser/expression.js:178:19)
at Parser.pp.parseMaybeConditional (/Users/user/node_modules/gulp-babel/node_modules/babel-core/node_modules/babylon/lib/parser/expression.js:160:19)
at Parser.pp.parseMaybeAssign (/Users/user/node_modules/gulp-babel/node_modules/babel-core/node_modules/babylon/lib/parser/expression.js:123:19)
at Parser.pp.parseParenAndDistinguishExpression (/Users/user/node_modules/gulp-babel/node_modules/babel-core/node_modules/babylon/lib/parser/expression.js:566:26)
at Parser.pp.parseExprAtom (/Users/user/node_modules/gulp-babel/node_modules/babel-core/node_modules/babylon/lib/parser/expression.js:471:19)我肯定做错了什么,但我不知道是什么。有什么想法吗?
发布于 2015-11-07 23:56:26
Babel从版本6开始,在默认情况下不会做任何事情,您必须提供一组要应用于源代码的变压器。
在您的示例中,您希望同时设置react和es2015转换器预置:
.pipe(babel({
presets: ['react', 'es2015']
}))进一步详情:
https://stackoverflow.com/questions/33589058
复制相似问题