为了账号安全,请及时绑定邮箱和手机立即绑定

用gulp如何编译多个文件夹下的less

用gulp如何编译多个文件夹下的less

MMTTMM 2018-08-13 11:28:00

项目目录如图:
https://img3.sycdn.imooc.com/5b7c12fe00012af507510341.jpg

2015、2016、2017文件夹和gulpfile.js、package、node_module同级。
我想自动编译每个文件夹下的less文件并生成在各自的css文件夹里,然后我写的代码如下:

var gulp = require('gulp'),

    less = require('gulp-less');


//LESS编译任务

gulp.task('less', function () {

    gulp.src('./*/less/*.less')

        .pipe(less())

        .pipe(gulp.dest('./*/css'));

});


gulp.task('default', function () {

    gulp.watch('./*/less/*.less', ['less']);

});

应该如何修改?

查看完整描述

2 回答

?
30秒到达战场

TA贡献1699条经验 获得超9个赞

gulp.src('./**/less/*.less'),或者可以传数组。

查看完整回答
反对 回复 2018-08-21
?
料青山看我应如是

TA贡献1663条经验 获得超11个赞

一个是dest路径的问题,dest的路径是不能自行匹配的,并且gulp的输出结果是dest路径+glob路径,所以其实只要dest路径为'./'即可。然后less的默认选项应该是匹配到的less文件的同路径下输出css,我用的sass不清楚是否可以进行配置,但是可以在pipe中使用gulp-rename插件对流的位置进行改写。具体代码如下:

var gulp = require('gulp'),

    less = require('gulp-less'),

    rename = require('gulp-rename');

//LESS编译任务

gulp.task('less', function () {

    gulp.src('./*/less/*.less')

        .pipe(less())

        .pipe(rename(function (path) {

            console.log(path)

            path.dirname = path.dirname.replace('less', 'css');

        }))

        .pipe(gulp.dest('./'));

});


查看完整回答
反对 回复 2018-08-21

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信