1
我试图建立与这个简单结构的项目:Babelify ParseError“进口”和“出口”可能会出现只与“sourceType的:模块”
app
|-- components
| |-- App.jsx
| |-- Root.jsx
|-- index.jsx
index.jsx
看起来是这样的:
import React from 'react';
import { createStore } from 'redux';
import { render } from 'react-dom';
import Root from 'app/components/core/Root';
const store = createStore();
render(<Root store={ store } />, document.getElementById('root'));
和Root.jsx
看起来是这样的:
import React from 'react';
import { Provider } from 'react-redux';
import { BrowserRouter, Route } from 'react-router-dom';
import App from 'app/components/core/App';
const Root = ({ store }) => {
return <Provider store={ store }>
<BrowserRouter>
<Route path='/' component={ App } />
</BrowserRouter>
</Provider>
};
Root.propTypes = {
store: React.PropTypes.object.isRequired,
};
export default Root;
我创建了一个文件,一饮而尽这种方式,SPE cifying的(我认为)正确的处理器为Babelify:
var gulp = require('gulp'),
buffer = require('vinyl-buffer'),
browserify = require('browserify'),
babelify = require('babelify'),
source = require('vinyl-source-stream'),
gutil = require('gulp-util');
gulp.task('build', function() {
var browserifyOptions = {
debug: true,
entries: './app/index.jsx',
extensions: ['.jsx', '.js'],
};
return browserify(browserifyOptions)
.transform(babelify.configure({
presets: ['es2015', 'react']
}))
.bundle()
.on('error', gutil.log)
.pipe(source('app.js'))
.pipe(buffer())
.pipe(gulp.dest('./lima/static'));
});
gulp.task('default', ['build']);
现在奇怪的是我得到这样的:
Root.jsx:1
import React from 'react';
^
ParseError: 'import' and 'export' may appear only with 'sourceType: module'
奇怪的是,index.jsx
似乎工作得很好,如果我删除任何babel presets
我在那个文件中得到了错误。 Root.jsx
或我的gulpfile
有什么不对?
你已经安装了所有的预置? – Li357