gulp如何在多个文件夹中分别合并同一文件夹里的css文件?

陶中马 发布于 2015/10/19 09:57
阅读 1K+
收藏 0

第一张图中实现了将src目录下的scss文件逐一编译并压缩到dist目录下,但离我想要的效果还有一些差距,我希望能够编译压缩的同时,将这三个css文件合并到一起去。而图二中加入了.pipe(concat('main.css'))语句,却发现它是将src目录下所有的scss文件编译压缩并合并到一起去了,不是只合并common下的,不免让人有些苦恼~~刚接触gulp没多久,弄了好久弄不出个所以然,还望大神们赐教~~

加载中
0
frantic1048
frantic1048

参见一下 glob 的规则,更详细地限制一下你传进 gulp.src() 的参数就可以了。

可以从这里查看: https://github.com/isaacs/minimatch#usage

一般建议不同用途的进行统一处理的文件/目录之类的都完全写成常量,不在 gulp.src() 里面进行字符串拼接,task 多了很容易混乱:)


另外 gulp.src() 是支持接收一个数组作为参数的,你可以这么用

gulp.src(['fileA', 'fileB', ...])

frantic1048
frantic1048
回复 @陶中马 : 懒一点可以就写一个 compile 的任务,然后用 gulp-newer <https://www.npmjs.com/package/gulp-newer> 这样的工具来过滤不需要重新编译的 SCSS
frantic1048
frantic1048
回复 @陶中马 : 推荐用 node 的 path <https://nodejs.org/api/path.html> 模块处理路径,方便且可靠
陶中马
回复 @frantic1048 : 问题已经解决了,大概思路是获取改动的文件的所在路径,然后截取其上层文件夹的相对路径进行传参,代码如上~ 再次对你的回答表示谢意,祝生活愉快。
陶中马
回复 @frantic1048 : gulp.watch("web/mobile/src/**/*.*", function(event {theSrc=event.path.substring(event.path.indexOf("web"),event.path.lastIndexOf("\\")+1); theDst = theSrc.replace("src", "dist"); });
frantic1048
frantic1048
回复 @陶中马 : 如果你想要分组合并的话,我能想到的就是分开 gulp.src 了 _(:з」∠)_
下一页
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部