npm安装NodeSass问题

标签: Nodejs 分类: Javascript 创建时间:2019-11-20 05:45:54 更新时间:2025-01-17 10:39:23

前言

在安装node-sass,node-gyp的时候,就会遇到很多的问题,下面的有的是windows上的,有的是linux上的,还有的是mac上的,我都摘录到这里了。解决方法就是不用node-sass,换成sass 和dart-sass就好了,这样就不会出现安装node-sass的问题了,步骤如下:
(1) 删除package.json中的 “node-sass”: “^4.14.1”

(2) 安装 dart-sass 和 sass

1
pnpm add dart-sass sass -D

(3) 将 /deep/ 替换为 ::v-deep

下面的是原先的解决方案,会出现各种问题,就直接不用了。

1.MSBUILD : error MSB3428:

使用cnpm安装软件包的时候,出现了这么一个错误:未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,

(1) 安装 .NET Framework 2.0 SDK;
(2) 安装 Microsoft Visual Studio 2005;
(3) 如果将该组件安装到了其他位置,请将其位置添加到系统路径。

执行下面两句:

1
2
npm install --global --production windows-build-tools
npm install -g node-gyp

我安装第一句,报错了:

索性直接执行第二句号了。

2.Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (88)

我按照参考文章的提示,执行了重新安装 node-sass

1
npm rebuild node-sass

结果就报了下面的第五个错误:check python:check python checking for Python executable “python2” in the PATH。

【解决方案】

解决问题4和问题5,我还是重新安装了python,因为我是在CentOS8上部署的。

1
2
3
4
5
6
7
8
9
10
## 安装python2
yum install python2
## 安装make
yum -y install gcc automake autoconf libtool make
## 安装g++
yum install gcc-c++
## 重新运行
npm rebuild node-sass
## 重新安装
cnpm install

make报错:

node-sass安装成功:

编译成功:

3.No Xcode or CLT version detected!

在mac上执行cnpm install 安装的时候,出现了错误,主要内容就是安装node-sass以及node-gyp的时候出现的错误。
{& asset_img err_8.png npm错误 &}

我尝试了下面的方法:
(1) 使用命令重置开发者工具 (无效)

1
sudo xcode-select --reset

(2) 安装xcode-select (有效)

1
2
$ sudo rm -rf $(xcode-select -print-path)
$ xcode-select --install

同意安装
{& asset_img err_9.png npm错误 &}

看看我的网速,就知道我有多么不想在AppStore中下载安装XCode了,简直有些让人抓狂啊,移动的网速,就是不行。
{& asset_img err_10.png npm错误 &}

耐心等待安装完成,然后重新执行 cnpm install 命令进行依赖安装,可以看到基本上不报错了,正在安装node-sass了。
{& asset_img err_11.png npm错误 &}

最后安装成功,虽然有警告,但是不影响使用了。
{& asset_img err_12.png npm错误 &}

参考文章:
1.项目依赖安装失败,node-sass 安装不上
2.Mac 解决 gyp: No Xcode or CLT version detected! 报错 (这里是说安装XCode开发者工具,但是我不做ios开发,而且安装起来很慢,要好几个G,万不得已我不使用这个方法)
3.gyp: No Xcode or CLT version detected macOS Catalina | (这里有几种方法,第一种reset已经试过了,不行)
4.NPM Error:gyp: No Xcode or CLT version detected! (这里提供的方法很实用,就是重新安装了xcode-select)

4.g++ 命令未找到

在Deepin上执行的时候,我虽然使用了pnpm命令,但是还是应该算是安装node-gyp的错误。
{& asset_img err_gyp_1.png npm错误 &}

【解决】

1
2
3
yum install gcc-c++

sudo apt install g++

5.node-sass安装失败

在安装了g++之后,还是无法运行node-gyp的安装,但是没有报具体的错误,我的是 Deepin 20.4 系统
{& asset_img err_gyp_2.png npm错误 &}

【尝试】
(1) 安装工具包

1
2
3
4
5
## 执行安装,不起作用
sudo apt-get install build-essential

## 直接全局安装
npm i -g node-sass

(2) 把node-sass全部换成了 dart-sass。

(3) 安装淘宝镜像

1
2
3
4
## 安装淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
## 使用淘宝镜像安装
cnpm install node-sass

【解决】
因为我第一次安装的是 node v16.13.0 版本,后来我降级到了v14.18.1 版本,结果就可以直接安装了,pnpm i 也没有报错。

又出现了新的问题 :Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 16.x
我安装了 node 的 v16 版本

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。