【问题标题】:gulp.watch() not working with jadegulp.watch() 不适用于玉
【发布时间】:2017-01-21 17:28:46
【问题描述】:

突然间,我的 gulpfile.js 的所有翡翠文件的 watch 语句停止工作。你知道为什么吗?

翡翠任务:

gulp.task('jade', function() {
  gulp.src('app/*.jade')
    .pipe(jade())
    .on('error', function(err) {
      console.log(err)
      this.emit('end')
    })
    .pipe(minifyHTML())
    .pipe(gulp.dest('dist/'))
    .pipe(browserSync.stream())
})

我也使用 BrowserSync,所以我把我所有的 watch 语句都放在了serve 任务中,看起来像这样:

gulp.task('serve', ['styles', 'html', 'jade', 'scripts'], function() {
  browserSync.init({
    server: './dist'
  })
  gulp.watch('app/css/**/*.sass', ['styles'])
  gulp.watch('app/*.jade').on('change', function() {
    gulp.run(['jade'])
    browserSync.reload()
  })
  gulp.watch('app/src/*.js', ['scripts'])
})

另外,所有其他 watch 语句都有效,所以我真的不知道发生了什么。感谢您的帮助!

【问题讨论】:

  • 我会尝试两件事。 1. 在gulp.src('app/*.jade') 前面添加return 2. 将gulp.watchjade 更改为gulp.watch('app/*.jade', ['jade']).on('change', browserSync.reload())。我建议从jade 升级到pug
  • 很高兴它对您有所帮助。我在下面写了我的答案。让我知道哪件事对您有帮助,还是您需要同时更改这两项?
  • 我修改了这两个东西,现在完美运行

标签: javascript node.js gulp pug


【解决方案1】:

我会尝试两件事。

  1. gulp.src('app/*.jade') 前面添加return,以便管道知道它已完成(有关此内容的更多信息,请参阅this question
  2. gulp.watchjade 更改为gulp.watch('app/*.jade', ['jade']).on('change', browserSync.reload())。我觉得你的方式很奇怪。

我会建议你从玉升级到哈巴狗。

【讨论】:

  • 谢谢你,我也遇到了同样的问题,你真的帮了我在gulp.src('app/*.jade')前面加上return
【解决方案2】:

如果没有更改代码但它突然停止工作,我会检查几件事。

如果你使用 node 和 npm:

  • 您是否在 package.json 中锁定了依赖项?
  • Jade、Gulp 或 browserSync 更新了吗?
  • 最后一次删除所有 node_modules 文件夹并运行 npm install 是什么时候。
  • 您是否切换过 Node 版本?

【讨论】:

  • 我的 package.json 中有 devDependencies,我使用的每个 gulp 依赖项。不,我最近没有更新它们,我删除了 node_modules 文件夹并在今天运行 npm install ,不,我没有切换版本......还有其他想法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多