开发技巧
解决权限错误
当包被全局安装时,可能会发生 EACCES 权限错误。如果出现这种情况,可能需要设置 npm 以在没有提升权限的情况下运行。
备注
不建议将 sudo 与 npm 一起使用,因为这可能导致进一步的复杂问题。
本指南提供了两个解决权限问题的选项。有关完整文档和其他选项,请参阅 npm 文档。
选项一
避免权限问题的最佳方法是使用节点版本管理器重新安装 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