1. gulp.dest 會自動建立目錄
gulp.dest(dir),若dir不存在,gulp會自動建立它
2. gulp.src copy具名路徑(即不子目錄**的路徑)的檔案,不會保留資料夾路徑
gulp.src('static/user/user.js') .pipe(gulp.dest('dist)); gulp.src('static/*.js'); //一級的*.xx檔案也不會保留路徑
如上,將user.js拷貝到dist,會形成如下結構
dist
user.js
若要保留路徑,即形成
dist
static
user
user.js
需要新增base選項,如下:
gulp.src('static/user/user.js', {base:'.'}) .pipe(gulp.dest('dist)); //或者使用萬用字元 gulp.src('static*/user*/user.js') .pipe(gulp.dest('dist));
3. gulp.src copy帶有*的路徑的檔案,會保留資料夾路徑
gulp.src('login/**/*.js')
.pipe(gulp.dest('dist'));
複製到dist的檔案是帶資料夾的
要解決這個問題,有如下方法:
1. gulp-flatten外掛可以拍平檔案結構
var gulp = require('gulp-flatten'); //轉移圖片並壓縮 gulp.task('copy-images', function() { return gulp.src(['./src/common/images/**/*']) .pipe(flatten()) .pipe(imagemin()) .pipe(gulp.dest('./build/images')); });
2. gulp-rename外掛可以修改檔案路徑和檔名
var gulp = require('gulp-rename'); //轉移圖片並壓縮 gulp.task('copy-images', function() { return gulp.src(['./src/common/images/**/*']) .pipe(rename({dirname: ''})) .pipe(imagemin()) .pipe(gulp.dest('./build/images')); });