所以
node-sass可以換成dart-sass
為什么重寫Sass?
Sass的主要實現有Ruby Sass 11和LibSass 20(node-sass底層使用的是LibSass),它們都有各自的優缺點。
Ruby Sass的實現語言是高級語言Ruby,更容易迭代,但存在運行速度慢,不易安裝的缺點。LibSass雖然速度快,但它的開發語言是C/C++,迭代速度慢,無法快速地添加各種功能。
為什么使用Dart?
Dart的運行速度是真的快,對於大型樣式文件,Dart Sass的處理速度是Ruby Sass的5~10倍,且只比LibSass慢1.5倍左右。
同時,Dart是一門具備靜態類型的動態語言,對比C/C++甚至是Ruby,Dart相對更容易上手且代碼也更易於編寫和維護。此外,Dart具備編譯輸出為JavaScript的能力,使得Dart Sass可以兼容NodeJS平台。
各種實現的后續規划?
LibSass作為目前性能最好的Sass實現,后續將繼續維護,只是它不再需要背負快速添加各種新功能的壓力。
Ruby Sass目前也會同步維護,但在無人接手的情況下,它將逐漸邊緣化。Sass項目組后續主要精力將轉移到Dart Sass,其穩定版本預計在2017年初放出。