【发布时间】:2016-05-22 08:41:36
【问题描述】:
我正在使用 gulp 进行 css 和 js 处理。有时我错过了 unix make 命令的好旧的懒惰:
仅从已实际更改(基于时间戳)的原始文件生成转换后的(例如编译)文件。
从第 1 阶段到第 2 阶段 (.cpp -> .o)、第 2 阶段到第 3 阶段(链接或其他内容)都是如此,无论您的依赖关系图给出什么...
Make 不仅限于源代码:您可以通过几个步骤进行图像处理(例如,有效地“延迟”生成缩小的拇指)或其他许多步骤。所有这些都基于一个相当简单的规则:“至少有一个源文件比当前输出文件更新吗?”
与 gulp 不同,每一步都会生成(或多或少是临时的)文件,而不是连续的管道。
有没有办法在 gulp** 中获得同样的惰性,即在生成 css 时?
- 仅转换那些 (less|sass|stylus) 文件➝css,如果有变化(在各自的文件上)
- 同样适用于添加浏览器前缀、concat、minify
诚然,除了前 1 或 2 步之外,输出很可能已经是单个流。所以任何改变都意味着“感动”。尽管如此,例如在使用 minify 选项时,我宁愿对早期的 transpile、prefixing 和 concat 阶段(从临时文件中绘制先前的结果)感到懒惰。同样在 javascript 方面(typeScript,...)
lazypipe 和 gulp-cache 听起来很诱人,但如果我理解正确的话,它们是另外一回事。对于第一阶段来说,.watch() 也只是部分答案。
有更通用的方法吗?
【问题讨论】:
标签: css node.js makefile gulp less