Gulp: 如何观看多个文件并只对更改文件执行任务?
Gulp: how to watch multiple files and perform a task for only the changes files?
我想做这件事:
我有一个包含许多 js 文件的文件夹。当我保存其中一个时,我想将缩小的文件保存在其他文件夹中。
我部分理解了,因为我的脚本会监视很多文件,当我更改一个文件时,所有文件都会被复制并缩小到目标文件夹。
最近发现gulp.run已经不用了
如果有人能帮助我,我将不胜感激。
我是这样尝试的:
var gulp = require('gulp');
var jshint = require('gulp-jshint');
var uglify = require('gulp-uglify');
var watch = require('gulp-watch');
var files_dev = "./_sys/js/private/*.js";
var path_prod = "./_sys/js/public/";
gulp.task('dist-file', function(file) {
gulp.src(file)
.pipe(uglify())
.pipe(gulp.dest(path_prod));
});
gulp.task('default', function() {
gulp.watch(files_dev).on("change", function(file) {
gulp.run('dist-file');
});
dist-file 不需要是一个 gulp 任务,你可以把它做成一个函数,你可以传递文件或 glob 来处理。另外 watch 现在是 gulp 的一部分,所以你不需要 gulp-watch.
var jshint = require('gulp-jshint');
var uglify = require('gulp-uglify');
var files_dev = "./_sys/js/private/*.js";
var path_prod = "./_sys/js/public/";
function uglifyFile (file) {
gulp.src([file])
.pipe(uglify())
.pipe(gulp.dest(path_prod));
}
gulp.task('watch-test', function() {
gulp.watch(files_dev).on("change", function (event) {
uglifyFile(event.path);
});
});
我想做这件事:
我有一个包含许多 js 文件的文件夹。当我保存其中一个时,我想将缩小的文件保存在其他文件夹中。
我部分理解了,因为我的脚本会监视很多文件,当我更改一个文件时,所有文件都会被复制并缩小到目标文件夹。
最近发现gulp.run已经不用了
如果有人能帮助我,我将不胜感激。
我是这样尝试的:
var gulp = require('gulp');
var jshint = require('gulp-jshint');
var uglify = require('gulp-uglify');
var watch = require('gulp-watch');
var files_dev = "./_sys/js/private/*.js";
var path_prod = "./_sys/js/public/";
gulp.task('dist-file', function(file) {
gulp.src(file)
.pipe(uglify())
.pipe(gulp.dest(path_prod));
});
gulp.task('default', function() {
gulp.watch(files_dev).on("change", function(file) {
gulp.run('dist-file');
});
dist-file 不需要是一个 gulp 任务,你可以把它做成一个函数,你可以传递文件或 glob 来处理。另外 watch 现在是 gulp 的一部分,所以你不需要 gulp-watch.
var jshint = require('gulp-jshint');
var uglify = require('gulp-uglify');
var files_dev = "./_sys/js/private/*.js";
var path_prod = "./_sys/js/public/";
function uglifyFile (file) {
gulp.src([file])
.pipe(uglify())
.pipe(gulp.dest(path_prod));
}
gulp.task('watch-test', function() {
gulp.watch(files_dev).on("change", function (event) {
uglifyFile(event.path);
});
});