checkPermissions和路径安装错误

时间:2018-12-21 18:59:28

标签: macos npm

我正在尝试在我的终端上安装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

1 个答案:

答案 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可以解决此问题。但是,请不要这样做

从互联网上以管理员权限安装随机代码是一个非常非常糟糕的主意。