日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

node node-sass sass-loader版本兼容问题

發(fā)布時(shí)間:2024/1/5 windows 70 coder
生活随笔 收集整理的這篇文章主要介紹了 node node-sass sass-loader版本兼容问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

相關(guān)概念

sass

Sass是一種預(yù)處理器腳本語言,可以解釋或編譯成層疊樣式表(CSS)。

Sass包含兩種語法:較舊的語法使用縮進(jìn)將代碼塊和換行符分隔為單獨(dú)的規(guī)則;較新的語法SCSS使用像CSS這樣的塊格式。它使用大括號(hào)來表示代碼塊和分號(hào)來分隔塊中的行。

縮進(jìn)語法和SCSS文件傳統(tǒng)上分別給出擴(kuò)展名.sass和.scss

node-sass

Node-sass是一個(gè)庫,它將Node.js綁定到LibSass(流行樣式表預(yù)處理器Sass的C版本)。它允許用戶以令人難以置信的速度將.scss文件本地編譯為css,并通過連接中間件自動(dòng)編譯。

sass-loader

sass-loader 是一個(gè)webpack 的loader,用于處理項(xiàng)目中的Sass/SCSS 文件。 它的作用是將Sass/SCSS 代碼轉(zhuǎn)換成CSS 代碼,并將其注入到應(yīng)用程序中。

兼容問題

在安裝node-sass的過程中,經(jīng)常會(huì)出現(xiàn)兼容問題,導(dǎo)致安裝失敗,通常是由于node版本、node-sass版本、sass-loader版本不對(duì)應(yīng)導(dǎo)致。
下面是一些推薦的版本對(duì)應(yīng)規(guī)則:

首先是node和node-sass的版本對(duì)應(yīng)規(guī)則:node-sass - npm

NodeJS Supported node-sass version Node Module
Node 20 9.0+ 115
Node 19 8.0+ 111
Node 18 8.0+ 108
Node 17 7.0+, <8.0 102
Node 16 6.0+ 93
Node 15 5.0+, <7.0 88
Node 14 4.14+, <9.0 83
Node 13 4.13+, <5.0 79
Node 12 4.12+, <8.0 72
Node 11 4.10+, <5.0 67
Node 10 4.9+, <6.0 64
Node 8 4.5.3+, <5.0 57
Node <8 <5.0 <57

然后是node-sass和sass-loader的對(duì)應(yīng)規(guī)則:

sass-loader 4.1.1,node-sass 4.3.0
sass-loader 7.0.3,node-sass 4.7.2
sass-loader 7.3.1,node-sass 4.7.2
sass-loader 7.3.1,node-sass 4.14.1
sass-loader 10.0.1,node-sass 6.0.1

上面是部分對(duì)應(yīng)規(guī)則,首先根據(jù)node版本確定好node-sass的版本,然后再選擇node-sass的版本。
同時(shí)上面只是一部分sass-loader的版本對(duì)應(yīng),因?yàn)闆]有提供官方的對(duì)應(yīng)規(guī)則,所以上面的版本還是不對(duì)的話,確定好node和node-sass版本之后,可以一個(gè)一個(gè)嘗試sass-loader的版本,所有版本:sass-loader - npm

其它說明

  1. 出現(xiàn)兼容問題的主要原因在于,早期開發(fā)人員使用比如node12版本,安裝node-sass4+版本和sass-loader4+,可以正常運(yùn)行,但是后期開發(fā)人員使用了更新的node,比如16,而16不支持低版本node-sass。
  2. 同時(shí)即便切換到低版本node12中可以正常運(yùn)行,但項(xiàng)目中使用了一些node12以上的代碼語法,比如node14才支持的可選鏈語法,然后其它開發(fā)人員拉代碼之后,就要么高版本node無法拉取node-sass包,要么切換低版本無法運(yùn)行一些高版本node才支持的語法。
  3. 推薦還是使用高版本的node,然后升級(jí)node-sass和sass-loader版本。

其它方法

直接放棄node-sass,使用dart-sass無縫替換。
node-sass與dart-sass區(qū)別:

  1. node-sass 是用 node (調(diào)用 cpp 編寫的 libsass) 來編譯 sass。
  2. dart-sass 是用 drat VM 來編譯 sass。
  3. node-sass 是實(shí)時(shí)自動(dòng)編譯的,dart-sass 需要保存后才會(huì)生效。
  4. 推薦 dart-sass 性能更好(也是 sass 官方使用的),除了上面的版本對(duì)應(yīng)不上,很多時(shí)候node-sass還因?yàn)閲?guó)情問題經(jīng)常裝不上。

下面是切換方法,使用高版本node,然后根據(jù)下面操作:
1、卸載 node-sass

npm uninstall node-sass

2、安裝 dart sass

npm install sass sass-loader -D

3、將項(xiàng)目中原有的?/deep/?替換為::v-deep,也就這一步麻煩一些,具體需要個(gè)人評(píng)估。

總結(jié)

以上是生活随笔為你收集整理的node node-sass sass-loader版本兼容问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。