开发技巧
解决权限错误
当全局安装包时,可能会发生 EACCES 权限错误。如果是这种情况,可能需要设置 npm 以无需提升权限即可运行。
备注
不建议在 npm 中使用 sudo,因为这可能导致进一步的复杂问题。
本指南提供了两种解决权限问题的选项。请参阅 npm 文档获取完整文档和其他选项。
选项 1
避免权限问题的最佳方法是使用 node 版本管理器重新安装 NodeJS 和 npm。
本指南将介绍 nvm 的安装和使用。请参阅 nvm 文档获取完整文档。请参阅 npm 文档获取其他选项和 Windows 说明。
-
安装 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,权限错误就不再发生。
选项 2
不适用于 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