node-sass弃用背景
背景说明
此次改动是在 Sass 核心团队进行了大量讨论之后,得出的结论,现在是时候正式宣布弃用 LibSass 和基于它构建的包(包括 Node Sass)。多年来,LibSass 显然没有足够的工程带宽来跟上 Sass 语言的最新发展 (例如,最近的语言特性是在 2018 年 11 月添加的)。尽管我们非常希望看到这种情况有所改善,但即使 LibSass 长期贡献者 Michael Mifsud 和 Marcel Greter 的出色工作也无法跟上 CSS 和 Sass 语言开发的快速步伐。
主要包括以下四点说明
- 不再建议将 LibSass 用于新的 Sass 项目, 改为使用 Dart Sass。 建议所有现有的 LibSass
用户制定计划,最终迁移到 Dart Sass,并且所有 Sass 库都制定计划 最终放弃对 LibSass 的支持。 不再计划向
LibSass 添加任何新功能,包括与新 CSS 功能的兼容性。 LibSass 和 Node Sass
将在尽力而为的基础上无限期维护,包括修复主要的错误和安全问题以及与最新的 Node 版本兼容。 为什么弃用? - 几年来,Sass 一直处于一种模棱两可的状态,LibSass 在理论上是官方支持实现,但实际上从它的功能表现来看是静止的。
随着时间的流逝,越来越清楚感受到这种状态对 Sass 用户已经造成了切实的问题。 例如,经常让用户感到困惑,为什么原生 CSS 的
min() 和 max() 无法正常工作,可能会认为 Sass 整体存在问题,但是实际上是因为 LibSass 不支持该功能。 - 官方支持的 LibSass 不仅会给个别用户带来痛苦,由于 LibSass 不支持去年启动的 Sass 模块系统,主要相关的 Sass
库由于担心其下游用户不兼容而无法使用它, 明确指出所有 Sass 用户应该放弃使用 LibSass,我们希望使这些 library
的作者能够更加切实地使用更多现代的功能特性。 - LibSass 甚至抑制了 Sass 语言本身的发展。 我们无法继续推进有关 treating / as a separator
的提议,因为他们编写的任何代码都会在 Dart Sass 中产生弃用警告或无法在 LibSass 中编译。 通过将 LibSass
标记为已弃用,情况会变得更好,并且 Sass 在支持最新版本的 CSS 方面会变得更好。
"弃用"意味着什么?
我们之所以选择使用"弃用"一词,是因为它在编程社区中具有很大的分量,并强烈表明用户应该开始计划放弃 LibSass。 但是,这并不意味着该项目已经完全死了。 LibSass 和 Node Sass 的首席维护者 Michael Mifsud 确认他计划继续进行与过去几年相同级别的维护。 这意味着尽管将不再添加任何功能(并且这样 LibSass 会慢慢地逐渐偏离与最新 CSS 和 Sass 语法的兼容性 ),但将继续无限期地发布维护版本。
可移植性和性能呢
LibSass 与 DartSass 相比有两个主要优点:
- 可移植性:由于它是用 C++ 编写的,因此可以轻松地将 LibSass 嵌入其他编程语言中并提供原生(native-feeling) API。
- 性能:通过 C++ API 调用 LibSass 与使用脚本语言直接编写代码的速度相比非常快。 特别是,这意味着 LibSass 在 JavaScript 中比 Dart Sass 编译为 JS 的库速度要快得多(尽管它可与 Dart Sass
的命令行可执行文件相媲美)。 我们正在使用 Sass 嵌入式协议来解决这两个问题,该协议将 Sass
编译器作为子进程运行,可以通过消息传递与任何主机语言进行通信。 嵌入式协议支持本地 Sass API 的所有功能,包括定义自定义导入程序和
Sass 函数的能力,同时还提供高性能的 CLI 应用程序。 Dart Sass 已经实现了嵌入式协议的编译器端,并且正在积极开发
JavaScript 端。
Dart Sass
- Dart Sass 可以编译为纯 JavaScript 编写的 sass 软件包上传到 npm 。 纯 JS
版本比独立的可执行文件慢,但易于集成到现有工作流程中,并且允许你在 JavaScript 中定义自定义函数和导入器。 - 当通过 npm 安装时,Dart Sass 目标是实现一个与 Node Sass 兼容的 JavaScript API
库。完全兼容还在开发中,但是 Dart Sass 目前支持 render() 和 renderSync()
函数。但是请注意,在默认情况下,由于异步回调的开销,renderSync() 的速度是 render() 的两倍以上。
node-sass弃用背景相关推荐
- Node Sass version 6.0.0 is incompatible with ^4.0.0.
你看到这里了? node-sass已经弃用了,现在它已经被dart-sass所替代,dart-sass的安装更加稳定,去试试它吧. 项目场景: 使用scss文件配置Vue页面控件的样式. 问题描述: ...
- Node Sass does not yet support your current environment: Windows 64-bit然如何解决,cnpm此问题解决方法
Node Sass does not yet support your current environment: Windows 64-bit然如何解决,cnpm此问题解决方法 参考文章: (1)No ...
- vue报错:Module build failed: Error: Node Sass does not yet support your current environment: Windows
Module build failed: Error: Node Sass does not yet support your current environment: Windows 64-bit ...
- 工作406- Error:Node Sass version 5.0.0 is incompatible with ^4.0.0 问题解决
Error:Node Sass version 5.0.0 is incompatible with ^4.x 问题解决 此错误来自sass-loader.因为node-sass@latest为v5. ...
- Module build failed: Error: Node Sass version 5.0.0 is incompatible with ^4.0.0.
Module build failed: Error: Node Sass version 5.0.0 is incompatible with ^4.0.0. node-sass版本过高导致的,卸载 ...
- Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 10.x
Node Sass could not find a binding 错误示例 error in ./src/components/BaseLayout.vue?vue&type=style& ...
- npm run dev时报错:Node Sass does not yet support../nodejs与node-sass版本冲突
出现:cnpm install或者npm run dev时报错 Node Sass does not yet support your current environment: Windows 64- ...
- Vue报错Module build failed Error Node Sass version 6.0.1 is incompatible with ^4.0.0.解决方案
Vue报错Module build failed: Error: Node Sass version 6.0.1 is incompatible with ^4.0.0.解决方案 错误提示: ERRO ...
- Node Sass找不到您当前环境的绑定
本文翻译自:Node Sass couldn't find a binding for your current environment I am having issues building an ...
最新文章
- Overview-ISA-2004-SP3
- CVPR 2018论文解读 | 基于域适应弱监督学习的目标检测
- api数据库管理_API管理平台如何增强您的数据科学项目
- poj 3348 Cows 求凸包以及凸包的面积
- 一套完整的Selenium自动化测试框架设计实战,这次38K, 妥了
- python读取读excel,日期变成了数字,解决方法记录
- Android 系统(242)---Android init.rc执行顺序
- Spring框架中提取list集合类型属性注入
- centos8.0配置静态IP详解
- 生如夏花之绚烂,死如秋叶之静美。 [泰戈尔诗词收集]
- STC12C5A60S2最小系统
- OpenCV python 绘制椭圆形
- 物联网流量卡怎么查流量_物联网卡流量查询(QueryCardFlowInfo)---JAVA
- 一个专家级软件架构师的自白书
- 基于Vue+Java实现的在线聊天APP系统设计与实现
- oracle12c 一键卸载
- 转:程序员常用不常见很难得的地址大全,博主很辛苦
- 有关三门问题的答案解释
- [045] 微信公众平台开发教程第21篇-“可信网址”白名单
- Linux 游戏玩家有福了