gulp处理多个文件夹下css合并

文件路径如下,style下可能有多个文件夹(不是固定3个):

app
└── style
    ├── common
    │   └── cssreset.css
    ├── detail
    │   ├── a.css
    │   ├── b.css
    │   ├── c.css
    │   └── d.css
    └── order
        ├── a.css
        ├── b.css
        ├── c.css
        └── d.css

期望:

dist
└── style
    ├── common.min.css
    ├── detail.min.css
    └── order.min.css

目前的写法是:

const gulp = require('gulp'),
    autoprefixer = require('gulp-autoprefixer'),
    cssmin = require('gulp-clean-css'),
    concat = require('gulp-concat'),
    less = require('gulp-less'),
    rename = require('gulp-rename');

gulp.task('default', () =>
    gulp.src('app/style/**/*.css')
    .pipe(less()) //编译less
    .pipe(autoprefixer({
        browsers: [
            "last 6 versions",
            "> 1%"
        ],
        cascade: false
    }))
    .pipe(concat('main.css')) //合并css
    .pipe(cssmin()) //压缩css
    .pipe(rename({ suffix: '.min' })) //设置压缩文件名
    .pipe(gulp.dest('./dist/style/'))
);

结果是:

dist
└── style
    └── main.min.css

不知道怎么写了,难道写循环建立多个task?求助!

阅读 4.2k
1 个回答

这里的思路可以参考一下 sf

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题