在日常开发过程中,我们使用MAC执行 npm install -g 下载安装包的时候,经常会遇到如下报错:permission denied
报错详情
xxx@***_C02xxxxx6M ~ % npm install -g yarn
npm ERR! code EA***ES
npm ERR! syscall mkdir
npm ERR! path /usr/local/lib/node_modules/yarn
npm ERR! errno -13
npm ERR! Error: EA***ES: permission denied, mkdir '/usr/local/lib/node_modules/yarn'
npm ERR! [Error: EA***ES: permission denied, mkdir '/usr/local/lib/node_modules/yarn'] {
npm ERR! errno: -13,
npm ERR! code: 'EA***ES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/usr/local/lib/node_modules/yarn'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to a***ess this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the ***mand again as root/Administrator.
npm ERR! A ***plete log of this run can be found in:
npm ERR! /Users/xxxxx/.npm/_logs/2022-12-06T11_15_27_852Z-debug-0.log
解决方案如下:
解决报错方案一:(针对正常权限的电脑)
sudo npm i yarn -g
解决报错方案二:(仅限电脑权限管控严格情况下,无法获取权限)
step1: 查看npm 全局文件安装地址
XXX@***_CXXXMD6M ~ % npm list -g
/usr/local/lib
├── @quasar/cli@1.3.2
├── corepack@0.14.1
├── npm@8.19.2
└── yarn@1.22.18
step2: 从其他人电脑上同样的目录,拷贝出来两份文件,一个是命令的快捷方式文件,一个是环境变量所指的路径文件,粘贴到自己电脑相同位置
-
命令快照文件
-
全局命令所指文件
step3: 打开环境变量配置文件,配置环境变量
vim ~/.bash_profile
把下面内容粘贴到环境变量文件里,
export PATH=/usr/local/lib/node_modules/yarn/bin/:$PATH
保存.bash_profile的编辑,执行一下文件
source ~/.bash_profile
问题解决,大功告成
命令行重新打开,就可以使用yarn
yarn -v
解决方案三:(建议大家都使用这种方案)
step1: 打开环境变量配置文件,配置环境变量
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
step2: 打开环境变量配置文件,配置环境变量
vim ~/.bash_profile
把下面内容粘贴到环境变量文件里,
export PATH=~/.npm-global/bin:$PATH
保存.bash_profile的编辑,执行一下文件
source ~/.bash_profile
step3: 问题解决,大功告成
命令行重新打开,就可以使用yarn
解决方案四:
step1:前提-已经安装homebrew
(如果未安装,可以打开终端,输入以下命令安装Homebrew)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.***/Homebrew/install/master/install)"
step2:查看安装的brew的版本
brew --version
step3:使用brew去安装我们需要的包,这里以yarn为例
brew install yarn
原理
报这个错,根本原因是由于npm全局安装模块的默认路径没有权限,通常有以下几种方式解决:
- 修改全局安装路径的权限(方案一,开权限)
- 修改默认安装路径 (方案三采用的就是这种)
- 借助其他工具安装(方案四)
- 其他方式(方案二)
今天就写到这里啦~
- 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
- 大家要天天开心哦
欢迎大家指出文章需要改正之处~
学无止境,合作共赢