Development Tips
解决权限错误
当全局安装软件包时,可能会出现 EACCES 权限错误。如果出现这种情况,可能需要配置 npm 使其无需提升权限即可运行。
备注
不建议将 sudo 与 npm 一起使用,因为这可能会导致更多复杂问题。
本指南提供了两种解决权限问题的方案。完整文档和其他选项请参阅 npm 文档。
方案一
避免权限问题的最佳方法是使用 node 版本管理器重新安装 NodeJS 和 npm。
本指南将记录 nvm 的安装和使用。完整文档请参阅 nvm 文档。其他选项和 Windows 系统的说明请参阅 npm 文档。
-
安装 nvm。
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash -
现在新终端将使用 nvm。要验证安装,请打开新终端并运行以下命令。如果有输出,则安装成功。
$ command -v nvm -
要下载并安装最新的 NodeJS LTS 版本,请运行:
$ nvm install --lts -
将新安装的 NodeJS 设置为默认环境:
$ nvm alias default lts/* -
现在新终端将使用 nvm 控制的 NodeJS。要验证:
$ node -v # 将打印上面安装的版本
$ which npm # 将打印 ~/.nvm 文件夹内的路径
现在全局软件包将安装在 ~/.nvm 目录中,因此只要在不使用 sudo 的情况下使用 npm,应该就不会再出现权限错误。
方案二
不适用于 Windows 系统将 npm 目录的所有者更改为当前用户:
$ sudo chown -R $(whoami) /usr/local/{lib/node_modules,bin,share}
$ sudo chown -R $(whoami) /usr/lib/node_modules
$ sudo chown -R $(whoami) ~/.npm ~/.npmrc