报错描述

在这里插入图片描述

npm ERR! gyp verb ensuring nodedir is created C:\Users\zhubayi\AppData\Local\node-gyp\Cache\16.20.2
npm ERR! gyp verb created nodedir C:\Users\zhubayi\AppData\Local\node-gyp\Cache\16.20.2
npm ERR! gyp http GET https://nodejs.org/download/release/v16.20.2/node-v16.20.2-headers.tar.gz
npm ERR! gyp WARN install got an error, rolling back install
npm ERR! gyp verb command remove [ '16.20.2' ]
npm ERR! gyp verb remove using node-gyp dir: C:\Users\zhubayi\AppData\Local\node-gyp\Cache
npm ERR! gyp verb remove removing target version: 16.20.2
npm ERR! gyp verb remove removing development files for version: 16.20.2
npm ERR! gyp ERR! configure error

原因

yarn install 的时候,node-sass 有一个依赖是 node-gyp

node-gyp 每次都要从网络上下载 node-headers.tar.gz 还有 node.lib 这类东西,可能是网络的问题,总是不成功,如果是可以从本地引用,就可以避免这样的麻烦。

解决办法

windows

网络原因,根本连接不上nodejs.org去下载压缩包资源,所以我们需要手动下载:

https://repo.huaweicloud.com:8443/artifactory/nodejs-local/v16.20.2/node-v16.20.2-headers.tar.gz
x86
https://repo.huaweicloud.com:8443/artifactory/nodejs-local/v16.20.2/win-x86/node.lib
x64
https://repo.huaweicloud.com:8443/artifactory/nodejs-local/v16.20.2/win-x64/node.lib

(把 v xxx 改成 node 相应版本)

下载好了之后,解压header.tar.gz到一个文件夹(我这里是D:\environment\nodejs\nodedir\node-v16.20.2),
在该文件夹中新建文件夹:Release,将你所需要的node.lib粘贴在这个文件夹中
在这里插入图片描述
在这里插入图片描述
修改 .npmrc 文件(我的在 C:\Users\zhubayi\ ),加上一行nodedir=D:\environment\nodejs\nodedir\node-v16.20.2
在这里插入图片描述

nodedir=D:\environment\nodejs\nodedir\node-v16.20.2

在这里插入图片描述
或者
打开cmd,输入

npm config edit

在npm配置文件中,加入一条

nodedir=D:\environment\nodejs\nodedir\node-v16.20.2

linux

Linux 上则简单多了,只要下载一个

https://repo.huaweicloud.com:8443/artifactory/nodejs-local/v16.20.2/node-v16.20.2-headers.tar.gz

然后运行

npm config set tarball "本地路径"/node-v8.9.4-headers.tar.gz

完成上述的操作之后,再次运行yarn install

在这里插入图片描述
完美解决

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐