我正在尝试将 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
它已经卡在那里一段时间了,我不知道如何调试它。
用 scripts() 改变第一个 babel() 是可行的,但当然不会编译 JSX 文件(也不会抱怨它)。
在脚本(注释掉的 3 行)之后调用 babel 将正确编译 JSX 文件,但没有其他任何内容(它只会编译 JSX 并将其保存到 all.js)。
我怎样才能解决这个问题?