LoginSignup
1

More than 5 years have passed since last update.

もう gulp watch を暴走させない。

Posted at

gulpwatchを使っていると、ファイルを変更していないのに、勝手にタスクが走り出すことがあります。

変更していないファイルを、変更されたと勘違いしたり、
変更していない同じファイルを、何回も変更されたと勘違いしたり。

一度watchが暴走し始めると、gulpコマンドを再起動させるはめになり、面倒でした。

watchタスクをひとつ、適当に例として書いてみます。

gulp
// 注意 これだけでは動きません。
gulp.task('scss', function () {
  gulp.watch(config.src, function (event) {
    console.log('changed scss: ', event.path);
    gulp.src(config.src)
      .pipe(plumber())
      .pipe(sass())
      .pipe(gulp.dest(config.dest));
  });
});

gulpが暴走すると、

永遠に変更され続けます。
changed scss: common.scss
changed scss: common.scss
changed scss: common.scss
changed scss: common.scss
changed scss: common.scss
changed scss: common.scss
changed scss: common.scss

暴走の原因はメモリ不足

私の場合、virtualBox、vagrantという環境でgulpを使用しており、
メモリが512MBがしかありませんでした。

gulpがメモリを512MB、全部使ってしまったタイミングで、暴走が始まることを確認したため、メモリを4GBに増加させたところ、暴走しなくなったので、おそらくこれが原因でした。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1