【发布时间】:2017-11-21 00:14:31
【问题描述】:
我正在尝试将带有 ES6 的 React 引入我的应用程序中,该应用程序是使用 Gulp 构建的。我可以让 React 单独工作,而 ES6 单独工作。但是尝试import 会使我的 Gulp 构建崩溃。 Gulp 的错误是:
第 14 行:非法进口声明
我的 HTML 页面包含 React 和构建的 JS 文件:
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.12.2/react.min.js"></script>
<script src="js/app.js"></script>
app.js 看起来像这样:
import {Child} from './child.js';
var Parent = React.createClass({
render: function(){
const y = 3; //es6 works
return (
<div>
<div> This is the parent {y}. </div>
<Child name="child"/>
</div>
)
}
});
React.render(<Parent />, document.getElementById('container'));
child.js 在同一目录下,如下所示:
var Child = React.createClass({
render: function(){
return (
<div>
and this is the <b>{this.props.name}</b>.
</div>
)
}
});
export default Child;
我的 Gulp 文件中使用 Babel 编译 ES6 的部分:
gulp.task('babel', function(){
gulp.src('js/app.js')
.pipe(react())
.pipe(babel({
presets: ['es2015']
}))
.pipe(gulp.dest('dist/js'));
});
我错过了什么/做错了什么导致我无法使用import?
【问题讨论】:
标签: reactjs ecmascript-6 gulp babeljs