JS ファイルと JSX ファイル (React.js で使用するため) の両方を、バージョン管理された単一の all.js ファイルに結合しようとしています。
私の現在のGulpfile:
var elixir = require('laravel-elixir');
elixir.config.sourcemaps = false;
elixir(function(mix) {
mix
.less([
'app.less'
], null, 'resources/assets/less')
.babel([
'libs/**', //contains react.js among other libs (jquery, bootstrap)
'app.js', //contains normal jquery
'quiz/quiz.jsx'
], null, 'resources/assets/js')
//.babel([
//'quiz/quiz.jsx'
//])
.version(["css/app.css", "js/all.js"]);
});
出力:
[18:38:28] Starting 'default'...
[18:38:28] Starting 'less'...
Fetching Less Source Files...
- resources/assets/less/app.less
Saving To...
- public/css/app.css
[18:38:30] Finished 'default' after 1.91 s
[18:38:34] gulp-notify: [Laravel Elixir] Less Compiled!
[18:38:34] Finished 'less' after 6 s
[18:38:34] Starting 'babel'...
Fetching Babel Source Files...
- resources/assets/js/libs/**/**/*
- resources/assets/js/app.js
- resources/assets/js/quiz/quiz.jsx
Saving To...
- public/js/all.js <---- STUCK HERE
しばらくそこにスタックしていて、これをデバッグする方法がわかりません。
最初の babel() を scripts() で変更すると機能しますが、もちろん JSX ファイルはコンパイルされません (そしてそれについて不平を言うこともありません)。
スクリプト (コメントアウトされた 3 行) の後に babel を呼び出すと、JSX ファイルは正しくコンパイルされますが、それ以外はすべてコンパイルされません (単純に JSX をコンパイルして all.js に保存します)。
どうすればこれを修正できますか?