【问题标题】:Watchify doesn't always detect changes in javascript filesWatchify 并不总是检测到 javascript 文件中的更改
【发布时间】:2015-08-26 22:08:24
【问题描述】:

我创建了一个 gulp 任务,用于将模块与 browserify 捆绑在一起,并且我正在使用 watchify 来监视更改。这是我的 watchify 任务:

gulp.task('watch:browserify', function () {
    var opts = assign({}, watchify.args, {
        entries: ['./js/app.js'],
        debug: true,
        basedir: './app/',
        paths: ['./lib']
    });

    var b = watchify(browserify(opts));

    b.on('update', function () {
        bundle();
    });

    function bundle() {
        gutil.log(gutil.colors.blue("Starting Browserify..."));
        var time = Date.now();
        return b.bundle()
            .on('error', gutil.log.bind(gutil, gutil.colors.red('Browserify Error')))
            .pipe(source('bundle.js'))
            .pipe(buffer())
            .pipe(sourcemaps.init({loadMaps: true}))
            .pipe(sourcemaps.write('.'))
            .pipe(gulp.dest('app'))
            .on('end', function () {
                var duration = Date.now() - time;
                gutil.log(gutil.colors.blue('Finished Browserify') + " (%dms)", duration);
            })
    }

    bundle();
});

如果我编辑主 js 文件 (./js/app.js),则始终会检测到更改。但是当我编辑主文件需要的其他一些文件时,大约每隔一次(但并非总是)检测到更改。我在这里做错了吗?

Here is the full Github repo 所以也许你明白我是如何计划这个工作的

【问题讨论】:

  • 我也有同样的问题。它并不总是检测到“小”变化。我仍然按 Enter 3-5 次来创建一些新行。他总是会检测到它,当他重建我的应用程序时,我会删除这些行。我知道,这很尴尬,但它有效:D
  • @marcel 是的,我现在也这样做,但这真的很烦人
  • 我已经尝试了您的 GitHub 项目 - 检测 app/js/... 中所有 javascript 文件的更改在我的机器上运行良好。 (也许你现在已经修好了?)

标签: javascript gulp browserify watchify


【解决方案1】:

您的代码示例存在两个问题。

首先,watch:browserify 必须接受回调或返回流,否则可能会出现竞争条件,如 here 所讨论的。因此,例如,您的任务中的最后一行可能是 return bundle();

其次,在使用watchify时,cachepackageCache选项必须传递给browserify(),如下图并指定here

    var b = browserify({ cache: {}, packageCache: {} });

最后,确保app.js 实际上在其依赖链的某个位置依赖于您正在编辑的其他文件。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我已经正确设置了@akarve 提到的所有内容。我回到watchify: "^2.6.0",问题得到解决。然而,构建/检测时间有点慢 - 大约半秒。尽管如此,还是比偶尔(经常!)不让 watchify 检测到我的更改要好得多。

    此处的相关讨论(我也在此处找到关于 v2.6.0 的评论)-https://github.com/substack/watchify/issues/216#issuecomment-119285896

    【讨论】:

      猜你喜欢
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多