1. 程式人生 > >gulp技巧總結

gulp技巧總結

選項 插件 dir 問題 gulp task ati base req

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‘)); });

gulp技巧總結