私はGulpで構築された私のアプリにReact with ES6を導入しようとしています。私はReactを単独で働くことができ、ES6は単独で働くことができます。しかし、import
にしようとすると私のギャルプビルドがクラッシュします。ガルプのエラーは次のとおりです。gulp-reactでの不正なインポート宣言
14行:不正輸入申告
マイHTMLページが反応含まれており、構築された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'));
:
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.12.2/react.min.js"></script>
<script src="js/app.js"></script>
app.js
はこのようになります
child.js
は同じディレクトリにあり、th次のとおりです。
var Child = React.createClass({
render: function(){
return (
<div>
and this is the <b>{this.props.name}</b>.
</div>
)
}
});
export default Child;
バベルとES6をコンパイルし、私のガルプファイルの一部:
gulp.task('babel', function(){
gulp.src('js/app.js')
.pipe(react())
.pipe(babel({
presets: ['es2015']
}))
.pipe(gulp.dest('dist/js'));
});
私はimport
を使用してから私を妨げている間違っている/何をしないのですか?あなたのimport文を修正し、次に
.pipe(react({
es6module: true
}))
:
Andrewに感謝します。私はそれがうまくいったと思うが、これをした後に別のエラーがある。 ブラウザで、 'モジュール名xxxがまだコンテキストに読み込まれていません。 'という要求からコンソールエラーが発生しました。だから私はBabelを落として、ReactコードをコンパイルするためにWebpackを使っています。 @AlanP。 –
。ああ、はい。 Babelは実際にモジュールローダーではありません。それは単にトランスバータだけなので、エラーが発生します。 Webpackを使用すると、Web用のモジュールも変わります。 – Li357