gulp如何在多个文件夹中分别合并同一文件夹里的css文件?
第一张图中实现了将src目录下的scss文件逐一编译并压缩到dist目录下,但离我想要的效果还有一些差距,我希望能够编译压缩的同时,将这三个css文件合并到一起去。而图二中加入了.pipe(concat('main.css'))语句,却发现它是将src目录下所有的scss文件编译压缩并合并到一起去了,不是只合并common下的,不免让人有些苦恼~~刚接触gulp没多久,弄了好久弄不出个所以然,还望大神们赐教~~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
更多
发布评论
评论(6)
回复
如果你想要分组合并的话,我能想到的就是分开 gulp.src 了 _(:з」∠)_
回复
gulp.watch("web/mobile/src/**/*.*", function(event {theSrc=event.path.substring(event.path.indexOf("web"),event.path.lastIndexOf("\")+1); theDst = theSrc.replace("src", "dist"); });
回复
问题已经解决了,大概思路是获取改动的文件的所在路径,然后截取其上层文件夹的相对路径进行传参,代码如上~ 再次对你的回答表示谢意,祝生活愉快。
回复
推荐用 node 的 path <https://nodejs.org/api/path.html> 模块处理路径,方便且可靠
回复
懒一点可以就写一个 compile 的任务,然后用 gulp-newer <https://www.npmjs.com/package/gulp-newer> 这样的工具来过滤不需要重新编译的 SCSS
参见一下 glob 的规则,更详细地限制一下你传进 gulp.src() 的参数就可以了。
可以从这里查看: https://github.com/isaacs/minimatch#usage
一般建议不同用途的进行统一处理的文件/目录之类的都完全写成常量,不在 gulp.src() 里面进行字符串拼接,task 多了很容易混乱:)
另外 gulp.src() 是支持接收一个数组作为参数的,你可以这么用
gulp.src(['fileA', 'fileB', ...])