mac使用npm全局下载的时候报错没有权限的解决方案记录

最近要创建一个新项目,使用npm全局下载脚手架的时候,发现报错:

bash 复制代码
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/fe-cli'
npm ERR!  [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/fe-cli'] {
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/usr/local/lib/node_modules/fe-cli'
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 access 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 command again as root/Administrator.

原因说明:没有足够的权限在 /usr/local/lib/node_modules 目录下创建文件夹,这通常是因为默认情况下,普通用户没有权限在 /usr/local/lib 目录中进行写入操作。

1.解决方式

有两种方式来解决这个问题

1.使用 Node.js 的版本管理工具 nvm 或 n 来安装 Node.js(推荐)

在 macOS 系统上,你可以使用 Node.js 的版本管理工具 nvm 或 n 来安装 Node.js,这样会避免权限问题。这将安装 Vue.js 到 Node.js 的全局安装目录中,通常在用户的主目录下,而不需要管理员权限。

2.手动修改npm默认的文件夹(不推荐)

Resolving EACCES permissions errors when installing packages globally | npm Docs

2.mac下载nvm

2.1.卸载node

复制代码
1、首先查看电脑上是否安装的有node,查看node版本
    node -v
    
2、如果有node就彻底删除node
    sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}

2.2 下载nvm

1.配置host:

bash 复制代码
185.199.109.133 raw.githubusercontent.com

2.下载nvm

bash 复制代码
sudo curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

3.检查是否安装成功

正常情况下安装完成后,会自动在全局配置文件中,配置好相应的环境变量。可以使用 nvm -v 命令进行验证。如果出现zsh: command not found: nvm,则按照下面的步骤手动配置。

3.3.配置环境变量

bash 复制代码
vim编辑信息命令
    i     编辑
    esc   退出编辑(esc指esc键)
    :qw   退出编辑文件
    
1、进入顶层文件夹
    cd ~
    
2、配置环境变量
    vim ~/.bash_profile
    
3、然后将下面的配置信息输入保存
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
    
4、刷新环境变量
    source ~/.bash_profile
    
5、输入 nvm -v 检查nvm是否可用

3.nvm常用命令

3.1.下载指定版本

bash 复制代码
nvm install v16.20.2

3.2.卸载指定版本

bash 复制代码
nvm uninstall v16.20.2

3.3.查看所有安装过的版本

bash 复制代码
nvm ls

3.4.使用某个已下载版本

bash 复制代码
nvm use v16.20.2

3.5 下载最新稳定版本

bash 复制代码
nvm install stable

参考:

解决在Mac下使用npm报错:Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/@vue'_npm err! code eacces npm err! syscall mkdir npm er-CSDN博客

mac安装nvm详细教程 || mac配置nvm避坑 - 掘金

相关推荐
FungLeo7 小时前
成为全栈·Node 后端篇·阅读量防刷:去重、冷却与计数写分离
node.js·读写分离·数据去重·接口防刷·成为全栈·数据冷却
CharlesYu018 小时前
前端性能优化的第一性原理,是不断缩短“用户发起意图 → 获得可用结果”之间的时间
前端
平头哥技术团队9 小时前
Day 21 _ 页内锚点_给每段起个 id,目录写 href=_#id_,点一下页面就滚到那一段
前端·html·html5
子兮曰10 小时前
Bun v1.4.1 深度解析:从 Zig 到 Rust,一场 11 天、64 个 AI 代理的语言迁徙
前端·后端·bun
人民广场吃泡面10 小时前
什么是AI Agent?它又能给前端带来哪些效率提升?
前端·人工智能
中科三方10 小时前
两家域名注册商资质被ICANN终止:企业域名资产安全再受关注
前端·网络·安全·域名
bug总结11 小时前
uniapp vue3全局方法注册使用
前端·javascript·uni-app
华无丽言11 小时前
如何在宜搭中实现获取子表中的字段值赋值到父表中?
前端·javascript·低代码
IT_陈寒12 小时前
Vue的computed属性竟然坑了我一把
前端·人工智能·后端
威斯软科的老司机12 小时前
通俗讲解 CNN 图像识别、向量 Embedding、Softmax 概率计算这三块的简化原理
前端·人工智能·ui·数字孪生