mac 使用npm安装yarn报错rollbackFailedOptional verb npm-session 发现使用npm安装所有依赖都报这个错

之前自己在node官网上下载的包,但是一直没用,这段时间突然想使用一下React,因此想使用一下yarn命令,开始按照官方文档使用brew安装,但是不知为何总是失败。

于是就想使用npm命令安装yarn,这个问题就出现了。

一、 代理无用别试了

上网搜索了一番,发现都是说代理的问题,我就无语,我都使用软件翻墙了,代理问题?在逗我,直接排除代理原因。

二、使用sudo npm install yarn居然可以下载成功

漫长的试错开始了,在使用命令sudo npm install yarn后居然奇迹般成功了,如果你执行sudo npm install yarn也能下载成功,那么这篇文章可能会帮到你,如果还是继续报告错误,请关闭文档,我们无缘。

虽然依赖下载成功了,但是在设置环境变量的时候遇到了困难,因为是使用root用户安装成功,所以在权限上有很大问题,环境变量设置失败,于是决定卸载node,重新使用当前用户安装。

三、开始解决

1.执行如下命令卸载node(因为有强迫症,必须删除干净,其实在使用第一条命令后就卸载完成,之后的命令都是删除残余的)

sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}

rm -rf .npm
rm -rf .npmrc
rm -rf ~/.node-gyp


/usr/local/share/man/man1
rm -rf *

/var/db/receipts
sudo rm -rf org.nodejs.*

2.之前太吃亏了,如果我有nvm完全可以安装多个版本的node,就不用这么复杂了,这次我使用nvm安装
首先安装nvm

cd ~
git clone https://github.com/nvm-sh/nvm.git .nvm

3.设置nvm环境变量
vim .bash_profile
添加内容如下
export NVM_DIR=“ H O M E / . n v m " [ s " HOME/.nvm" [ -s " NVM_DIR/nvm.sh” ] && . “KaTeX parse error: Expected 'EOF', got '#' at position 18: …M_DIR/nvm.sh" #̲ This loads nvm…NVM_DIR/bash_completion” ] && . “$NVM_DIR/bash_completion” # This loads nvm bash_completion

4.执行命令source .bash_profile更新环境变量
nvm -v测试是否安装成功

5.使用nvm安装最稳定的node
nvm install --lts

6.检查node 和npm安装成功
node -v
npm -v
7.使用命令设置淘宝镜像
npm config set registry https://registry.npm.taobao.org

8.使用npm全局安装yarn(这个时候不使用sudo也不报错了)
npm install -g yarn

9.安装成功会出现如下。
/Users/lzy/.nvm/versions/node/v12.16.3/bin/yarn -> /Users/lzy/.nvm/versions/node/v12.16.3/lib/node_modules/yarn/bin/yarn.js
/Users/lzy/.nvm/versions/node/v12.16.3/bin/yarnpkg -> /Users/lzy/.nvm/versions/node/v12.16.3/lib/node_modules/yarn/bin/yarn.js
[email protected]

10.设置yarn的环境变量
export PATH="$PATH:/Users/luziyuan/.nvm/versions/node/v12.16.3/bin/yarn"

11.设置yarn的淘宝镜像
yarn config set registry https://registry.npm.taobao.org

这个时候检查安装yarn --version出现版本号表示安装成功。

友情提示:如果确实出现了这个问题,一定要卸载node,重新安装,否则权限问题会导致你使用npm下载的依赖也无法正常使用。

猜你喜欢

转载自blog.csdn.net/qq_42584411/article/details/106282022