M1芯片macOS 11.6.1系统执行npm全局安装时报EACCES权限错误
M1芯片macOS 11.6.1 npm全局安装EACCES错误解决方案
你遇到的是npm全局安装时的权限报错,核心原因是当前用户没有系统默认全局安装路径的写入权限,无法创建软链接到/usr/local/bin目录,以下是可直接落地的解决方案:
方案一:修改npm全局安装路径到用户目录(最推荐,无权限副作用)
这个方案不会修改系统目录的权限,完全规避后续权限冲突问题,操作步骤如下:
- 在用户根目录下创建npm全局安装专属文件夹
mkdir -p ~/.npm-global - 配置npm的全局安装前缀为刚才创建的文件夹
npm config set prefix '~/.npm-global' - 将新的全局命令路径添加到系统环境变量
如果你使用的是M1 Mac默认的zsh shell,执行:
如果你使用的是bash shell,执行:echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrcecho 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bash_profile - 重载环境变量配置使修改生效
zsh用户执行:
bash用户执行:source ~/.zshrcsource ~/.bash_profile - 重新执行安装命令即可
npm install -g ts-node
方案二:修改系统全局目录所属权限(适合单用户自用设备)
直接将npm全局安装需要用到的系统目录的所有权修改为当前用户,操作步骤如下:
- 执行权限修改命令,输入开机密码后回车即可(输入密码时屏幕不会显示内容,正常输入即可)
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib/node_modules - 重新执行安装命令即可
npm install -g ts-node
方案三:临时提权安装(不推荐,仅适合临时应急使用)
直接用sudo权限执行安装命令,后续安装其他全局包可能还会遇到同类权限问题:
sudo npm install -g ts-node
安装验证
所有方案执行完成后,可执行以下命令验证安装是否成功,输出版本号即为安装完成:
ts-node -v
内容的提问来源于stack exchange,提问作者ajdaviscodes
相关产品推荐
相关产品推荐

