我想用最近推出的ES6語法創建一個基本的React組件。在browserify和babel下面使用ES6編譯問題反應JavaScript
我現在的文件架構是這樣的: 我有應導入反應的根feed.jsx文件和我的自定義組件
import React from 'react';
import ReactDOM from 'react-dom';
import FeedApp from './components/FeedApp';
var target = document.getElementById('FeedApp');
ReactDOM.render(FeedApp, target);
我FeedApp,其中進口的另一個組件,如下所示:
import React from 'react';
import Header from './Header';
class FeedApp extends React.Component{
constructor(){
this.state = {
customHeading: "Hello"
}
}
render() {
return (
<div className="clearfix wrapper">
<Header />
</div>
);
}
}
export default FeedApp;
導入頭部件也是一個基本之一:
import React from 'react';
class Header extends React.Component {
render() {
return(
<div className="top-bar">
<div className="top-logo-wrapper">
<a href="/" title="Homepage">
<img src="/imgs/logo-b.png" alt="Logo" />
</a>
<a href="/" title="Homepage">
<h1>Title</h1>
</a>
</div>
</div>
);
}
}
export default Header;
最後但並非最不重要的我gulpfile內容,這應該編譯一切成一個文件:在運行gulpfile我得到以下輸出後
var gulp = require('gulp');
var browserify = require('browserify');
var babelify = require('babelify');
var source = require('vinyl-source-stream');
gulp.task('build', function() {
browserify({
entries: 'public/js/build/feed.jsx',
extensions: ['.jsx'],
debug: true
})
.transform(babelify)
.bundle()
.pipe(source('public/js/build/bundle.js'))
.pipe(gulp.dest('dist'));
});
gulp.task('default', ['build']);
右:
[12:15:49] Working directory changed to /path/folder
[12:15:49] Using gulpfile /path/folder/gulpfile.js
[12:15:49] Starting 'build'...
[12:15:49] Finished 'build' after 22 ms
[12:15:49] Starting 'default'...
[12:15:49] Finished 'default' after 7.46 μs
events.js:141
throw er; // Unhandled 'error' event
^
SyntaxError: 'import' and 'export' may appear only with 'sourceType: module'
我已閱讀,這可能因爲它不會自動提供任何「插件」,所以成爲一個問題。如果是這樣 - 任何人都會如此善良,並幫助我編輯我的gulpfile.js(或其他文件),以便讓我有一切設置使用ES6的榮耀和反應?
謝謝:)
你用什麼版本babelify的? –