2016-04-13 12 views
1

私はgulp concatとbrowseryncを使用しています。 gulpを実行すると、ブラウザ同期が開始され、モジュールにあるすべてのjsファイルが連結されて再読み込みされます。問題は、jsファイルの連結は一度しか行われないため、gulpの実行を停止して再度実行して、jsファイルに反映された変更を確認する必要があるということです。私はあまりにもギャルを停止して再起動した後に、ギャル通知タスクを見るだけです。どうやってgulpをセットアップして、常にjsをバンドルしコンパイルしてからbrowersyncを実行するのですか?Gulp Concat + Browseryncの再起動

// watch 
gulp.task('watch', ['browserSync', 'scripts'], function(){ 
    // Reloads the browser whenever HTML or JS files change 
    gulp.watch('app/*.html', browserSync.reload); 
    gulp.watch('app/modules/**/*.js', ['scripts']); 
}); 

gulp.task('scripts', function() { 
    return gulp.src('app/modules/**/**.js') 
     .pipe(concat('main.js')) 
     .pipe(gulp.dest('app/build/js')) 
     .pipe(notify({ message: 'Scripts in modules have been bundled!' })) 
     .pipe(browserSync.reload({ 
      stream: true 
     })); 
}); 

gulp.task('default', ['watch', 'scripts']); 

答えて

1

です

私はあなたの痛みがあなたのファイルを見てスクリプトを実行しなかったと理解しています。

P.S.私はそれがうまくいけない場合gulpの専門家ではないよ、ごめんなさい。

+0

これは動作しますが、 'stream:true 'の後に') 'を追加する必要がありました。何らかの理由で、gulp notifyが今は動作しませんが、それは重要ではありません。 gulpを再起動する必要なく、今すぐビルドが動作します。ありがとう! – Mills

+0

ああ。私は、通知パイプの最後に閉じ括弧が欠けていました。それを追加して、それがうまくいくかどうか確認してください。それはそれを修正する必要があります。 – timolawl

+0

さん、働いてくれてありがとうございました。 '' '.pipe(notify({message: 'モジュールのスクリプトがバンドルされました!'))) .pipe(browserSync.reload({ ストリーム:true })); '' '' – Mills

0

を私はよく分からないが、あなたはタスク "デフォルト" の下

gulp.watch('app/modules/**/*.js', ['scripts']);

を置くことを試みることができる:ここで

はこれを試してみてください、私のgulpfile

var gulp = require('gulp'); 
var concat = require('gulp-concat'); 
var browserSync = require('browser-sync').create(); 
var notify = require('gulp-notify'); 


// default 
gulp.task('default', ['browserSync', 'scripts'], function(){ 
// Reloads the browser whenever HTML or JS files change 
gulp.watch('app/*.html', browserSync.reload); 
gulp.watch('app/modules/**/*.js', browserSync.reload); 
}); 

gulp.task('scripts', function() { 
return gulp.src('app/modules/**/**.js') 
    .pipe(concat('main.js')) 
    .pipe(gulp.dest('app/build/js')) 
    .pipe(notify({ message: 'Scripts in modules have been bundled!' })); 
}); 

//start browsersync 
gulp.task('browserSync', function() { 
browserSync.init({ 
server: { 
    baseDir: 'app' 
}, 
}) 
}) 
関連する問題