如何安装TypeScript?执行npm i -g typescript遇EACCES权限错误
错误详情
npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/local/lib/node_modules/typescript
npm ERR! errno -13
npm ERR! Error: EACCES: 权限被拒绝,无法创建目录 '/usr/local/lib/node_modules/typescript'
npm ERR! [Error: EACCES: 权限被拒绝,无法创建目录 '/usr/local/lib/node_modules/typescript'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/usr/local/lib/node_modules/typescript'
npm ERR! }
npm ERR!
npm ERR! 操作系统拒绝了该操作。
npm ERR! 当前用户可能没有访问该文件的权限
npm ERR!
npm ERR! 若您认为这是权限问题,请仔细检查文件及其所在目录的权限,或尝试以root/管理员身份重新运行命令。
npm ERR! 本次运行的完整日志可查看:/Users/a/.npm/_logs/2023-11-08T05_58_43_501Z-debug-0.log
解决方案
方法1:配置用户专属npm全局目录(推荐)
- 创建用户私有全局目录:
mkdir -p ~/.npm-global - 让npm使用该目录作为全局安装路径:
npm config set prefix '~/.npm-global' - 将该目录添加到系统环境变量(根据你使用的shell编辑对应配置文件,比如
~/.bashrc或~/.zshrc):echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc - 刷新配置使修改生效:
source ~/.zshrc - 重新安装TypeScript:
npm i -g typescript
方法2:临时使用sudo安装(不推荐长期使用)
执行以下命令,输入用户密码后完成安装:
sudo npm i -g typescript
注意:长期使用sudo安装npm包可能导致后续文件权限混乱,尽量避免。
方法3:修复现有全局目录权限
调整/usr/local/lib/node_modules的权限,让当前用户拥有读写权限:
sudo chown -R $(whoami) /usr/local/lib/node_modules
之后重新执行安装命令:
npm i -g typescript
内容的提问来源于stack exchange,提问作者Abduvali Abduvaliev

