原文地址:https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally 翻译时间:2021.04.14 原文作者:npm 翻译人员:方阿森
当你尝试着在全局安装一个包的时候,如果你看见一个名为 EACCES
的错误,那么你可以尝试通过以下两种方式来解决这个问题。
- 通过 node 版本工具重新安装你的 npm(推荐)
- 手动修改 npm 的默认文件夹
通过 node 版本工具重新安装你的 npm(推荐)
通过 node 版本工具重新安装你的 npm,这是避免权限问题的最佳方案。
通过 这篇文章 来了解更多关于下载安装 Node.js 和 npm 的步骤。
在你安装 node 版本管理器之后,你不需要移除当前版本的 npm 或者是 Node.js 。
手动修改 npm 的默认文件夹
注意:这一部分并不适用于 Window 用户
**
为了减少出现程序错误的可能性,你可以给 npm 设置不同的文件夹。在下面的例子中,你将会在你的 home 目录下,创建并且使用一个隐藏的文件夹。
- 给你的电脑备份
打开 命令行,在你的 home 目录下,创建一个目录
mkdir ~/.npm-global
配置 npm 去使用新的目录路径(directory path)
npm config set prefix '~/.npm-global'
在你喜欢的文本编辑器中,打开或者创建
~/.profile
文件,并且向文件中添加下面这行代码。export PATH=~/.npm-global/bin:$PATH
在命令行中,更新你的系统变量( system variables )
source ~/.profile
测试一下你的新环境,试试不使用 sudo 来全局安装一个包看看~
npm install -g jshint
如果你不想去修改 ~/.profile
。那么,2-4步是可以替换的,你可以使用相应的环境变量( corresponding ENV variable )。
NPM_CONFIG_PREFIX=~/.npm-global
npx:运行全局命令的替代品 ** 如果你的 npm 版本大于等于 5.2,那么你可能就会考虑使用 npx 来作为运行全局命令 的替补方案,特别是,当你只是偶尔需要使用这个命令的时候。想了解更多的信息,可以看看 这篇关于npx的文章