sass-embedded:高性能版的 Sass

早年的 node-sass 是用 c/c++ 实现的,现在已经不再维护了。

sasssass-embedded 是不同的软件包,虽然用法和发行版本都是一样的,但本质的区别是,sass 是 Dart Sass 的纯 javascript 实现版本 ,而 sass-embedded 是 Dart 原生实现,外层暴露了 javascript 接口。

因为有不同的实现,而且包的名字有很大的区别,sass 包的名字更直接,占尽优势,所以很多人都是直接安装 Sass 这个包,像 element-plus 用的也是 sass,但它们真的不一样。

对比

下面从几个维度来看看这两者的区别:

特性 sass sass-embedded
编译引擎 dart sass javascript
编译速度 较慢 较快
启动时间 稍慢
包体积 2.8MB 18-22MB
内存占用 80-120MB 40-70MB
安装耗时 2-5 秒 5-10 秒
周下载量 18,967,153 2,896,642
版本 同步发布 同步发布

我们用两者分别来编译 element-plus 的 scss 文件来看看对比:

js 复制代码
const fs = require('fs')
const sass = require('sass')
const saasEmbedded = require('sass-embedded')

console.time('sass')
const result = sass.compile('./packages/theme-chalk/src/index.scss')
fs.writeFileSync('./element-plus.css', result.css)
console.timeEnd('sass')

console.time('sass-embedded')
const result1 = saasEmbedded.compile('./packages/theme-chalk/src/index.scss')
fs.writeFileSync('./element-plus1.css', result1.css)
console.timeEnd('sass-embedded')

编译结果:

三次对比中 sass-embedded 分别约比 sass 快 3.39 倍、3.31 倍、2.78 倍;sass-embedded 平均比 sass 快约 3.16 倍

测试机器为 Mac Mini M4;node版本:v22.14.0

优先推荐大家使用 sass-embedded

如何使用?

lua 复制代码
pnpm install sass-embedded

直接安装,使用方式和原来的 sass 一样,无任何改变。

相关推荐
腻害兔5 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
不好听6135 小时前
从一行 JSX 到屏幕像素:前端开发者必须懂的浏览器渲染管线
前端
恒拓高科WorkPlus5 小时前
企业级内网即时通讯建设模型:BeeWorks内网IM四层架构
前端
前端小李子6 小时前
前端环境变量裸奔?我用 EnvShield 给它穿了件防弹衣
前端
youtootech6 小时前
HarmonyOS《柚兔学伴》项目实战25-我的页面、Web 嵌入与项目总结
前端·华为·harmonyos
小林ixn6 小时前
从零到一理解 React 父子组件通信:手写一个 Todo 应用带你彻底搞懂单向数据流
前端·javascript·react.js
醇氧8 小时前
CountDownLatch / CyclicBarrier / Semaphore 面试高频问答清单
前端·面试·职场和发展
qetfw9 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
甲维斯9 小时前
我要开始吹牛逼了!Kimi K3 “宇宙无敌”!
前端·人工智能