【译】如何防止权限错误
Last updated
Was this helpful?
Last updated
Was this helpful?
原文档:
当你全局安装依赖包的时候,如果遇到EACCES问题,请阅读此章节。
如果你改变npm
的安装目录,你是可以防止这类问题发生的。你可以用两种方法解决此问题:
用版本管理工具重装npm
(推荐)
手动改变npm
的默认安装目录
npm
这是解决权限问题的最好方法。这已经在中讲解了。在安装node
版本管理工具之前,你不需要移除掉你当前版本的npm
或者Node.js
。
npm
的默认安装目录此方法暂不支持Windows
系统,不过很快我们会针对Windows
更新此章节。
为了尽可能的减少权限错误问题,你可以使用不同的目录来配置npm
。在本事例中,就是指的你的主目录下的一个隐藏目录。
开始前需要备份你的电脑
创建一个存放全局安装模块的目录:
配置npm
使用此新目录:
打开或者创建~/.profile
文件并且添加一行:
回到命令行,更新你的系统变量:
测试:不用sudo
下载一个全局包:
或者你如果不想用2-4步骤的话,你也可以使用相关的环境变量(比如:你不想更改~/.profile
文件)
=========================分割线=========================
我使用的第二种方法,暂时高高兴兴的耍了。但是当我npm i npm -g
后,npm -v
发现还是之前的版本。。我&&#!@&#&*#,然后which npm
发现也是~/.npm-global
下的,这就奇怪了。。思来想去,想起来有一步骤source ~/.profile
,哦,原来是么得生效,source一下果然是新版本了。
但是,后来又一想,第二种方法的根本不就是更改npm
的prefix
配置么,何必这么繁琐,于是把~/.profile
文件删掉,把~/.npm-global
目录删掉,把npm
的prefix
更改为之前的/usr/local
,然后再-g
安装,已经么得问题了,over。
得到教训:只知npm 命令,不知npm 配置,后续继续跟进更多配置。
小贴士:考虑到npx
如果你在用npm@5.2或者更高版本,探索npx
作为运行全局命令的替代方法,尤其是当你只是偶尔需要一个命令的时候。可以看这一篇关于的优秀文章。