如何加快 sass 编译速度?
Posted
技术标签:
【中文标题】如何加快 sass 编译速度?【英文标题】:How to speed up sass-compilation? 【发布时间】:2014-07-24 09:57:00 【问题描述】:在编译 sass 时,我在配备 ssd 的速度非常快的笔记本电脑上往往需要很长的编译时间(在当前的中型项目上最多 9 秒)。我通过grunt-contrib-sass ass 使用 sass 是一项繁重的任务,但是直接从命令行运行 sass 时编译时间并没有太大差异。另一方面,Libsass 对于同一个项目只需要大约 100 毫秒,但它不支持我需要的几个功能。所以我想知道加快编译过程的可能性是什么?
拆分文件当然有帮助,但还有其他方法可以减少副作用吗?
编辑: 此外,我也很乐意解释 libsass 如何比 ruby-sass 快得多。不知何故,我高度怀疑这仅仅是因为 ruby 比 C/C++ 慢得多。还是我错了?
编辑2: 当我使用 Ubuntu 时,相同的项目在 macbook pro 上编译时间为 2 秒,在硬件方面应该会更慢,所以这可能与 linux 有关。
【问题讨论】:
“不知何故,我非常怀疑这仅仅是因为 ruby 比 C/C++ 慢得多。还是我错了?” Ruby 是一种动态类型的解释语言。它比 C++ 慢很多倍,在某些情况下慢 100 倍:benchmarksgame.alioth.debian.org/u64q/… @thexacre 非常感谢您指出这一点。我知道动态语言更慢,也更慢,但并不是说对于 ruby 和 c 来说差异如此之大。但这仍然使 ruby sass 慢了大约 5 倍。 Libsass 与 Sass 不同。它没有 Sass 提供的全部功能。使用 Libsass 时看到不正确的结果并不少见。也就是说,这可能很有趣:github.com/nex3/sass/issues/1019 Guardian 报告说使用 node-sass (twitter.com/patrickhamann/status/565819491356262400) 将他们的 Sass 编译速度从 27 秒提高到 3.6 秒。如果这种差异继续存在,我可以看到 libsass 成为事实上的标准。 只是想指出,自从提出这个问题以来,libsass 的兼容性情况已经有了相当大的改善。它还不完美,但对于我们(非常大的)SASS 代码库来说已经足够了。几个资源:github.com/sass/libsass/wiki/The-LibSass-Compatibility-Plansass-compatibility.github.io 【参考方案1】:到目前为止我发现了什么:
更改 ruby 版本:我安装了 ruby 2.1.2 和 sass 3.3.8(当前最新的稳定版)。卸载所有以前的(未使用的?) sass 版本后,我的速度提高了 1 秒。现在安装 ruby 1.9.3 和 2.0.0 一切都在 2 秒左右编译完成(对于两个 ruby 版本)。 :) 不过,我仍然愿意接受进一步的建议。只有咕噜声相关:
update-autoprefixer:如果您使用的是grunt-autoprefixer,那么我强烈建议您将其更新到最新版本(1.0.0 atm)。在我的一个项目中,我的速度从 13 秒增加到 4 秒。此更新还修复了损坏的源映射问题。
使用 jit-grunt 代替 load-grunt-tasks: 如果您使用 grunt-load-tasks,请考虑使用 jit grunt。速度显着提高。
【讨论】:
以上是关于如何加快 sass 编译速度?的主要内容,如果未能解决你的问题,请参考以下文章