# npm 防止权限错误
如果你在尝试全局安装软件包时看到 EACCES
错误,请阅读本章。如果你更改安装 npm 的目录,通常可以避免此错误。为此,请执行以下任一操作:
# 选择 1:使用节点版本管理器重新安装
这是避免权限问题的最佳方法。这在 上一篇
中进行了描述。在安装节点版本管理器之前,你不需要删除当前版本的 npm 或 Node.js。
# 选择 2:更改 npm 的默认目录
本节不适用于 Microsoft Windows。本章将在不久的将来更新以解决 Windows。为了最大限度地减少权限错误的可能性,你可以将 npm 配置为使用不同的目录。在本例中,它将是你的主文件夹中的一个隐藏目录。
在开始之前备份你的计算机。
为全局安装创建一个目录:
mkdir ~/.npm-global
- 配置 npm 以使用新的目录路径:
npm config set prefix '~/.npm-global'
- 打开或创建一个~/.profile文件并添加以下行:
export PATH=~/.npm-global/bin:$PATH
- 回到命令行,更新你的系统变量:
source ~/.profile
测试:不使用 sudo
下载全局包。
npm install -g jshint
你可以使用相应的 ENV 变量(例如,如果你不想修改 ~/.profile
),而不是步骤 2-4 :
NPM_CONFIG_PREFIX=~/.npm-global
# 提示:考虑 npx
如果你使用的是 npm 5.2 或更高版本,请探索npx作为运行全局命令的替代方法,特别是如果你只是偶尔需要一个命令。