在全局安装包时解决 EACCES 权限错误

如果您在尝试 全局安装包 时看到 EACCES 错误,您可以

  • 使用 Node 版本管理器重新安装 npm(推荐),

  • 手动更改 npm 的默认目录

使用 Node 版本管理器重新安装 npm

这是避免权限问题的最佳方法。要使用 Node 版本管理器重新安装 npm,请按照 "下载和安装 Node.js 和 npm" 中的步骤操作。在安装 Node 版本管理器之前,您不需要删除当前版本的 npm 或 Node.js。

手动更改 npm 的默认目录

注意:本节内容不适用于 Microsoft Windows。

为了最大程度地减少出现权限错误的可能性,您可以配置 npm 以使用不同的目录。在本例中,您将在主目录中创建一个隐藏目录并使用它。

  1. 备份您的计算机。

  2. 在命令行中,在您的主目录中,为全局安装创建一个目录

    mkdir ~/.npm-global
  3. 配置 npm 以使用新目录路径

    npm config set prefix '~/.npm-global'
  4. 在您喜欢的文本编辑器中,打开或创建一个 ~/.profile 文件并添加以下行

    export PATH=~/.npm-global/bin:$PATH
  5. 在命令行中,更新您的系统变量

    source ~/.profile
  6. 要测试您的新配置,请在不使用 sudo 的情况下全局安装一个包

    npm install -g jshint

您也可以使用相应的环境变量来代替步骤 3-5(例如,如果您不想修改 ~/.profile

NPM_CONFIG_PREFIX=~/.npm-global

npx:运行全局命令的替代方法

如果您使用的是 npm 5.2 或更高版本,您可能需要考虑将 npx 作为运行全局命令的替代方法,尤其是当您只是偶尔需要一个命令时。有关更多信息,请参阅 这篇关于 npx 的文章