npm安装yarn无报错但命令不存在,全局安装报EACCES权限错误怎么办
问题原因解析
- 本地安装yarn后找不到命令:你在项目目录执行
npm install yarn属于项目局部安装,yarn会被安装到当前项目的node_modules目录下,对应的可执行文件存放在./node_modules/.bin/路径,这个路径默认不在系统的全局命令查找范围(PATH)内,因此直接输入yarn命令系统无法识别。 - 全局安装报EACCES错误:macOS/Linux等Unix类系统的默认npm全局包安装路径为
/usr/local/lib/node_modules/,该路径属于root用户权限范围,你当前使用的普通用户没有写入权限,因此创建yarn安装目录的操作被系统拒绝。
解决方案
方案一:修改npm全局包安装路径(最推荐,无后续权限隐患)
将npm全局包的默认安装路径修改为当前用户的私有目录,不需要修改系统目录权限,也不会导致后续其他全局包安装出现同类问题:
- 在当前用户目录下创建专属的全局npm包存放文件夹:
mkdir -p ~/.npm-global - 配置npm使用该路径作为全局安装的默认路径:
npm config set prefix '~/.npm-global' - 打开你所用shell的配置文件:使用zsh则编辑
~/.zshrc,使用bash则编辑~/.bash_profile或~/.bashrc,在文件末尾添加如下内容:export PATH=~/.npm-global/bin:$PATH - 执行命令让配置立即生效,注意替换为你实际修改的配置文件名:
source ~/.zshrc - 重新执行yarn全局安装命令即可正常完成安装:
npm install -g yarn - 执行
yarn -v验证安装,输出版本号即为安装成功。
方案二:使用npx调用项目内安装的yarn(无需全局安装,适合临时使用场景)
如果你仅在当前项目需要使用yarn,不需要全局调用,之前已经在项目内完成yarn局部安装的前提下,在命令前加npx前缀即可直接调用项目内的yarn,示例如下:npx yarn installnpx yarn run dev
该方案不需要修改任何配置,可直接使用。
方案三:使用sudo临时提升权限安装(不推荐,易引发后续权限问题)
如果只是临时使用不想修改配置,可直接在全局安装命令前加sudo提升权限:sudo npm install -g yarn
执行时输入当前用户的登录密码即可完成安装。但该方案会将包安装到系统目录,后续安装其他全局包仍可能遇到同类权限问题,不建议长期使用。
内容的提问来源于stack exchange,提问作者absolutenoob
相关产品推荐
相关产品推荐

