Gulpでbrowserifyやbabelifyなどを使ってReactのソースをビルドしているんですが、
対象のJavaScriptファイルに単純な構文エラー(カッコが足りない、JSXの構文ミスなど)が発生すると
gulp.watch
が止まってしまいます。
gulp-plumberを使うと継続できる、とか、
.on('error', function(){})
でハンドリングできる、など
いくつか対策を見つけたのですが、watchが止まる状況は変わりませんでした。
Gulpの知識が無いので、記述が良くなくて効果が無いだけなのかもしれないのですが、
Gulp+Browserify+babelify+uglify+Reactな環境でエラー発生後もwatchが継続できるように
gulpfile.jsを記述したいです。
gulpfile.js
JavaScript
1gulp.task('build', function() { 2 return gulp.src('src/js/*.js') 3 .pipe(plumber()) 4 .pipe(through2.obj(function(file, encode, callback){ 5 browserify(file.path) 6 .transform(babelify) 7 .bundle(function(err, res){ 8 file.contents = res; 9 callback(null, file) 10 }) 11 .on('error', console.log('error')) 12 })) 13 .pipe(uglify({preserveComments: 'some'})) 14 .pipe(gulp.dest('./build/js/')); 15});
JSON
1 "devDependencies": { 2 "babelify": "^6.3.0", 3 "browser-sync": "^2.9.6", 4 "browserify": "^11.2.0", 5 "del": "^2.0.2", 6 "gulp": "^3.9.0", 7 "gulp-plumber": "^1.0.1", 8 "gulp-uglify": "^1.4.1", 9 "gulp-watchify": "^0.5.0", 10 "react": "^0.13.3", 11 "run-sequence": "^1.1.4", 12 "through2": "^2.0.0", 13 "vinyl-buffer": "^1.0.0", 14 "vinyl-source-stream": "^1.1.0", 15 "vinyl-transform": "^1.0.0" 16 }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/28 06:32