Gulpを使用してReact JSXをトランスリングしています(私は知っています)。ストリーミングライブラリからエラーがスローされたときにGulp.jsのビニールストリームエラーを正しく処理する
私はこのガルプタスクいる:
gulp.task('transpile-jsx', function() {
return transpileJSX().on('error',function(err){ // < I just added this error handler, but it doesn't do much
console.error(err);
});
});
上記のタスクはそうのように呼び出されます。
gulp.task('metagen:all', ['transpile-jsx'], function (done) {
runAllMetagens(done);
});
と仕事をして、実際の関数は次のようになります。
function transpileJSX() {
return gulp.src('./public/static/app/js/views/**/*.js').pipe(react({harmony: true}))
.pipe(gulp.dest('./public/static/app/js/jsx'));
}
ストリームが非同期であるためにtry/catchが機能しないので、エラーハンドラをアタッチする最も良い方法は何ですか?
events.js:141
throw er; // Unhandled 'error' event
^
Error: Parse Error: Line 94: Unexpected token >
at throwError (/Users/amills001c/WebstormProjects/baymax/AdminUI/node_modules/gulp-react/node_modules/react-tools/node_modules/jstransform/node_modules/esprima-fb/esprima.js:2808:21)
at throwUnexpected (/Users/amills001c/WebstormProjects/baymax/AdminUI/node_modules/gulp-react/node_modules/react-tools/node_modules/jstransform/node_modules/esprima-fb/esprima.js:2870:9)
at parseJSXChild (/Users/amills001c/WebstormProjects/baymax/AdminUI/node_modules/gulp-react/node_modules/react-tools/node_modules/jstransform/node_modules/esprima-fb/esprima.js:7068:13)
at parseJSXElement (/Users/amills001c/WebstormProjects/baymax/AdminUI/node_modules/gulp-react/node_modules/react-tools/node_modules/jstransform/node_modules/esprima-fb/esprima.js:7140:31)
at parsePrimaryExpression (/Users/amills001c/WebstormProjects/baymax/AdminUI/node_modules/gulp-react/node_modules/react-tools/node_modules/jstransform/node_modules/esprima-fb/esprima.js:3572:20)
at parseLeftHandSideExpressionAllowCall (/Users/amills001c/WebstormProjects/baymax/AdminUI/node_modules/gulp-react/node_modules/react-tools/node_modules/jstransform/node_modules/esprima-fb/esprima.js:3656:61)
at parsePostfixExpression (/Users/amills001c/WebstormProjects/baymax/AdminUI/node_modules/gulp-react/node_modules/react-tools/node_modules/jstransform/node_modules/esprima-fb/esprima.js:3696:20)
at parseUnaryExpression (/Users/amills001c/WebstormProjects/baymax/AdminUI/node_modules/gulp-react/node_modules/react-tools/node_modules/jstransform/node_modules/esprima-fb/esprima.js:3763:16)
at parseBinaryExpression (/Users/amills001c/WebstormProjects/baymax/AdminUI/node_modules/gulp-react/node_modules/react-tools/node_modules/jstransform/node_modules/esprima-fb/esprima.js:3853:16)
at parseConditionalExpression (/Users/amills001c/WebstormProjects/baymax/AdminUI/node_modules/gulp-react/node_modules/react-tools/node_modules/jstransform/node_modules/esprima-fb/esprima.js:3913:16)
私が午前問題はリアルタイムで起こるtranspilationエラーが原因で、私のdevのサーバー(、私のdevのサーバーをクラッシュされているということです。私の一気プロセスでタンクが、それはそうのようなJSXのtranspilationエラーに当たるとしません私のギャルププロセスです)、これらの蒸散エラーは私のギャルププロセスをクラッシュさせています。
まあ、 'エラー'ハンドラーで動作しているようです。 –
これは私の人生を保存しました:) –