我正在尝试在我的终端上安装firebase和create-react-native-app,并在我的终端上不断出现相同的错误。有人可以向我解释我问题的根源和解决方案。
请说明我如何更改权限
npm install -g create-react-native-app
npm install firebase-tools -g
npm WARN checkPermissions缺少对/ usr / local / lib / node_modules的写入权限 npm ERR!路径/ usr / local / lib / node_modules npm ERR!代码EACCES npm ERR!埃尔诺-13 npm ERR!系统调用访问 npm ERR!错误:EACCES:权限被拒绝,访问'/ usr / local / lib / node_modules' npm ERR! {[错误:EACCES:权限被拒绝,访问'/ usr / local / lib / node_modules'] npm ERR!堆: npm ERR! '错误:EACCES:权限被拒绝,访问\'/ usr / local / lib / node_modules \'', npm ERR! errno:-13, npm ERR!代码:“ EACCES”, npm ERR! syscall:“访问”, npm ERR!路径:'/ usr / local / lib / node_modules'} npm ERR! npm ERR!该操作被您的操作系统拒绝。 npm ERR!您可能没有权限以当前用户身份访问此文件 npm ERR! npm ERR!如果您认为这可能是权限问题,请仔细检查 npm ERR!文件及其包含目录的权限,或尝试运行 npm ERR!再次以root / Administrator身份执行命令(尽管不建议这样做)。
npm错误!可以在以下位置找到此运行的完整日志: npm ERR! /Users/matthewsixt/.npm/_logs/2018-12-21T18_46_00_558Z-debug.log
答案 0 :(得分:0)
有人可以向我解释我问题的根源吗
npm正在尝试写入没有写入权限的目录。
请说明我如何更改权限
正如您在npm docs上所读到的那样,如果尝试全局安装软件包时看到EACCES
错误,则可以手动更改npm的默认目录或使用节点版本管理器重新安装npm。
更改npm的默认目录
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
这将创建用于全局安装的目录,并将npm配置为使用新的目录路径。然后创建一个~/.profile
文件(如果存在则打开它)并添加:
export PATH=~/.npm-global/bin:$PATH
重新加载您的shell,然后重新尝试安装以检查其是否有效:
source ~/.profile
npm i -g create-react-native-app
使用版本管理器
这是我的首选,因为您可以安装任意数量的Node和npm版本,并可以在它们之间随意更改。它还完全消除了权限问题。
我使用的版本管理器是nvm。要安装它,使用cURL有一个方便的内衬:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
要验证安装:
command -v nvm
如果安装成功,应该输出'nvm'。
该项目的首页上还列出了其他installation methods个
。一旦安装了它,就可以看到可用的Node版本:
nvm ls-remote
并使用以下命令安装版本:
nvm install xx.xx.xx
(其中xx.xx.xx是版本号)。
如果您想了解有关使用nvm的更多信息,这篇文章会有所帮助:Installing Multiple Versions of Node.js Using nvm。
使用sudo
您可能会发现在命令前加上sudo
可以解决此问题。但是,请不要这样做。
从互联网上以管理员权限安装随机代码是一个非常非常糟糕的主意。