如何在 Gulp 中监视多个目标?
How do I watchify multiple targets in Gulp?
我正在使用 browserify 来监听将多个文件编译成多个目标,就像这样(使用 this trick):
gulp.task('js', function () {
var bundler = through2.obj(function (file, enc, next) {
browserify(file.path).bundle(function(err, res) {
file.contents = res;
next(null, file);
});
});
return gulp.src(['foo.js', 'bar.js'])
.pipe(bundler)
.pipe(uglify())
// Other pipes
.pipe(gulp.dest('./compiled'));
});
如何将 through2 用法与 watchify 结合使用?关于使用 vinyl-source-stream 的常见建议对我不起作用。我想生成两个文件(compiled/foo.js 和 compiled/bar.js)。我不想将文件合二为一
我想出了如何结合 through2 和 watchify。诀窍是 不 在更新时调用 next()
:
var bundler = through.obj(function (file, enc, next) {
var b = watchify(browserify(file.path))
b.on('update', function () {
gutil.log('Updated', gutil.colors.magenta(file.path));
b.bundle(function (err, res) {
file.contents = res;
// Do not call next!
});
b.on('log', gutil.log);
}
b.bundle(function (err, res) {
file.contents = res;
next(null, file);
});
});
我正在使用 browserify 来监听将多个文件编译成多个目标,就像这样(使用 this trick):
gulp.task('js', function () {
var bundler = through2.obj(function (file, enc, next) {
browserify(file.path).bundle(function(err, res) {
file.contents = res;
next(null, file);
});
});
return gulp.src(['foo.js', 'bar.js'])
.pipe(bundler)
.pipe(uglify())
// Other pipes
.pipe(gulp.dest('./compiled'));
});
如何将 through2 用法与 watchify 结合使用?关于使用 vinyl-source-stream 的常见建议对我不起作用。我想生成两个文件(compiled/foo.js 和 compiled/bar.js)。我不想将文件合二为一
我想出了如何结合 through2 和 watchify。诀窍是 不 在更新时调用 next()
:
var bundler = through.obj(function (file, enc, next) {
var b = watchify(browserify(file.path))
b.on('update', function () {
gutil.log('Updated', gutil.colors.magenta(file.path));
b.bundle(function (err, res) {
file.contents = res;
// Do not call next!
});
b.on('log', gutil.log);
}
b.bundle(function (err, res) {
file.contents = res;
next(null, file);
});
});