1

gulp concat と browsersync を使用しています。gulp を実行すると、browserync が起動し、モジュール内にあるすべての js ファイルを連結してリロードします。問題は、js ファイルの連結が 1 回しか行われないことです。そのため、gulp の実行を停止して再度実行し、js ファイルに反映された変更を確認する必要があります。gulp も停止して再起動した後にのみ、gulp 通知タスクが表示されます。常に js をバンドルしてコンパイルし、browersync を実行するように gulp をセットアップするにはどうすればよいですか?

ここに私の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'
},
})
})
4

2 に答える 2

1

これを試して:

// 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']);
于 2016-04-13T17:38:06.983 に答える
0

よくわかりませんが、入れてみていただけますか

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

タスク「デフォルト」の下

私が理解しているように、あなたの一口はあなたのファイルを見てスクリプトを実行しませんでした

PS うまくいかない場合は、gulp の専門家ではありません。申し訳ありません。

于 2016-04-13T17:38:57.147 に答える