Dart Sass替换Node Sass

1 篇文章 0 订阅

需求:项目重构,需要一套前端基础模板

想法:用vue-element-admin(我之前基于它做过一套基础架构)

按照正常流程npm install时出现问题,命令行直接报错:

...
gyp verb ensuring that file exists: C:\Python27\python.exe
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at PythonFinder.failNoPython (D:\Coding\data-atm-front-end\vue-admin-template\node_modules\_node-gyp@3.8.0@node-gyp\lib\configure.js:484:19)
gyp ERR! stack     at PythonFinder.<anonymous> (D:\Coding\data-atm-front-end\vue-admin-template\node_modules\_node-gyp@3.8.0@node-gyp\lib\configure.js:509:16)
gyp ERR! stack     at callback (D:\Coding\data-atm-front-end\vue-admin-template\node_modules\_graceful-fs@4.2.8@graceful-fs\polyfills.js:299:20)
gyp ERR! stack     at FSReqCallback.oncomplete (node:fs:198:21)
gyp ERR! System Windows_NT 10.0.19043
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "D:\\Coding\\data-atm-front-end\\vue-admin-template\\node_modules\\_node-gyp@3.8.0@node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd D:\Coding\data-atm-front-end\vue-admin-template\node_modules\_node-sass@4.14.1@node-sass
gyp ERR! node -v v16.13.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build failed with error code: 1
[npminstall:runscript:error] node-sass@4.14.1 scripts.postinstall run "node scripts/build.js" error: Error [RunScriptError]: Run "C:\windows\system32\cmd.exe /d /s /c node scripts/build.js" error, exit code 1
    at ChildProcess.<anonymous> (C:\Users\zyk18802\AppData\Roaming\npm\node_modules\cnpm\node_modules\runscript\index.js:96:21)
    at ChildProcess.emit (node:events:390:28)
    at maybeClose (node:internal/child_process:1064:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5) {
  stdio: [Object],
  exitcode: 1
}
× Install fail! RunScriptError: post install error, please remove node_modules before retry!
.....

问题点:下载不了node-sass。

解决过程:找了各种方案,出现各种问题,大致经过了一下阶段
        1、代码运行后解析不了scss文件原因—node-sass和sass-loader版本不匹配。

        2、最终选择node-sass@4.14.1和sass-loader@7.1.0但是运行后又提示window 64-bit不支持

        3、最终直接去看了sass-loader - npmicon-default.png?t=LA92https://www.npmjs.com/package/sass-loader        和node-sass - npmWrapper around libsasshttps://www.npmjs.com/package/node-sass      sass-loader直接这样说  

最终解决方案:用dart-sass替换了node-sass

具体做法,保留node-sass和sass-loader版本不变的情况再做以下两步操作:

第一步:命令行直接执行

$ npm install sass -D

第二步:

将项目中的/deep/改成::v-deep


 

 

### 回答1: Dart-sassnode-sass都是用于编译Sass代码的工具。Dart-sass是由Dart语言编写的,而node-sass是由Node.js编写的。它们都可以将Sass代码编译成CSS代码,并提供了许多功能,如变量、嵌套、混合等。Dart-sass相对于node-sass来说,速度更快,但是需要安装Dart环境。而node-sass则可以直接在Node.js环境下使用。 ### 回答2: Dart-SassNode-Sass是两种常用的Sass编译器。 Dart-Sass是一款基于Dart语言开发的Sass编译器,由Sass核心开发者Hampton Catlin和其他贡献者共同开发和维护。Dart-Sass是官方推荐的Sass编译器,支持最新的Sass语法和功能,如@forward、CSS模块以及其他的一些更新。 Node-Sass是一款基于Node.js平台开发的Sass编译器,由Hugo Giraudel和Andrew Nesbitt共同开发和维护。Node-Sass是最早出现的Sass编译器之一,得到了广泛的使用和认可。它支持较早版本的Sass语法和功能,并且能够提供更好的性能让开发者可以更快地编译Sass文件。 两款编译器的主要区别在于他们的运行平台,Dart-Sass运行于Dart平台上,而Node-Sass运行于Node.js平台上。此外,Dart-Sass更加符合最新的Sass语法规范,更能提供更好的性能和处理能力,因此已被官方推荐为首选的Sass编译器。而Node-Sass则更注重与Node.js的兼容性和能够兼容更早的Sass语法版本。 总的来说,选择哪一款Sass编译器应该根据项目需要和开发者的喜好而定。如果注重使用最新的Sass语法和功能,以及更好的性能,可以选择Dart-Sass。而如果需要通用性更强的编译器,并且更能兼容早期的Sass语法版本,可以选择Node-Sass。 ### 回答3: Dart-sassnode-sass都是Sass编译器,它们可以将Sass或者Scss代码编译成CSS代码。Sass是一种CSS预处理器,它使用类似于编程语言的语法来定义CSS样式,让CSS的编写更加快捷、直观。而Dart-sassnode-sass则是Sass语言的解析器,在编译Sass代码时可以实现一些高级功能,如使用变量、函数、嵌套等。 Dart-sass使用Dart语言进行编写,其最明显的特点是速度快,比node-sass快得多,且支持最新的Sass语法特性。另外,Dart-sass的错误信息也更加明显和容易理解。但是,Dart-sass的代码数量比较多,对于初学者来说可能会有一点陌生。 node-sass是一款基于Node.js的Sass编译器,它是由C++实现的,性能也非常好。在安装和使用上比较简单,不需要学习新的语言的语法。但是,相比Dart-sassnode-sass对于Sass 3.5语法的支持不太好,而且在错误提示方面可能不如Dart-sass。 对于哪种Sass编译器更好,在很大程度上取决于个人情况和需求。如果对于速度要求比较高,或者需要使用新的Sass语法特性,那么Dart-sass比较适合。如果希望使用方便、错误提示较为清晰,且不需要使用最新的Sass语法特性,那么node-sass可能比较适合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值