gulp 如何只编译改动和新加的文件

2016-04-04 23:29:20 +08:00
 uniquecolesmith
3540 次点击
所在节点    问与答
11 条回复
ruanyu1
2016-04-04 23:35:43 +08:00
gulp-changed
NemoAlex
2016-04-04 23:39:09 +08:00
使用第三方的 watch ,例如: https://github.com/floatdrop/gulp-watch
而不是 gulp.watch
uniquecolesmith
2016-04-04 23:45:07 +08:00
@ruanyu1
@NemoAlex
我试了 但是感觉没用? 是不是我打开方式不对?  gulp-changed 和 gulp-cached 也没起作用
对了 gulp-sass 老是 bus error ,改用 gulp-ruby-sass
uniquecolesmith
2016-04-04 23:56:45 +08:00
@ruanyu1 gulp-changed TypeError: Cannot read property 'mtime' of null 没找到解决办法
adspe
2016-04-05 06:38:53 +08:00
gulp-filter
.pipe(filter('**/*.scss'))
v1024
2016-04-05 07:54:05 +08:00
watch([*.sass"]).on("change", function(file){ 在这里编译 file })

大概是这样的,上面代码仅供参考
vietor
2016-04-05 07:56:29 +08:00
升级机器性能,没必要纠结这些小不爽
readonly
2016-04-05 08:39:06 +08:00
gulp.src 每次都会去读取文件流,当文件数量多的时候可以明显感受到

gulp-watch 不支持分析依赖进行递归编译,后代依赖发生变化并不会 watch 到,所以会 miss 掉真正想要处理的文件

小项目还是直接全量处理吧,大一点的项目没有基于依赖收集的构建工具基本死路一条,这方面目前做得比较好的有: webpack , F.I.S
uniquecolesmith
2016-04-05 11:13:25 +08:00
@v1024 试试 谢谢
@vietor 机器性能。。。编译文件多了你试试
@readonly 3Q 但是 webpack 把依赖编译进来也挺大的 我觉得 webpack+react/vue 好点, 其他普通的项目也用 webpack ? 我不太理解这么做的哲学
uniquecolesmith
2016-04-05 11:15:26 +08:00
@adspe 我看了这个插件没懂 是编译完, 再过滤没有改动的文件, 再还原?
uniquecolesmith
2016-04-06 10:54:21 +08:00
@v1024 你的方法可行 但是 这和 gulp.task 的哲学是不是有悖? sass task 变成了 sass function

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/268546

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX