我有这样一个gulp任务
gulp.task("js-min", function () {
browserify(config.paths.mainJs)
.transform(reactify)
.bundle()
.pipe(source('tec.min.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(uglify())
.pipe(sourcemaps.write(config.paths.dist))
.pipe(gulp.dest(config.paths.dist));
});
创建应用程序的缩小版本。它由gulp-watch
任务定期运行。我看到的问题是,gulp
告诉我这个任务在30ms内完成,但如果我检查生成的文件,则需要另外30秒才能看到正在更新的实际新文件。
如何更改gulp任务js-min
,以便确切知道文件系统中文件何时完成更新。
答案 0 :(得分:3)
有两种解决方案,并且不知道您正在使用的browserify
包。
如果它是基于承诺的,那么只需编辑您的代码即可返回该承诺:
gulp.task("js-min", function () {
return browserify(config.paths.mainJs)
如果它不基于承诺,那么它将采用某种采用回调的onend
或done
方法。在这种情况下,它会是这样的:
gulp.task("js-min", function (done) {
browserify(config.paths.mainJs)
.transform(reactify)
.bundle()
.pipe(source('tec.min.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(uglify())
.pipe(sourcemaps.write(config.paths.dist))
.pipe(gulp.dest(config.paths.dist))
// THIS IS THE LINE TO CHANGE
.onfinish(done);
});