create-react-app失败,权限被拒绝

时间:2018-11-24 06:28:59

标签: node.js linux reactjs

我遇到一个奇怪的错误:

Unhandled rejection Error: EACCES: permission denied, mkdir '/home/ubuntu/.npm/_cacache/index-v5/14/36'atus

我只需在AWS实例上安装npm(6.4.1)和节点(11.2.0)即可,没有任何问题。我在全球范围内安装了create-react-app。错误显示This is an error with npm itself.

我有点茫然。我创建了目录/home/ubuntu/.npm/_cacache/index-v5/14,但仍然无法成功。我显然拥有/ home / ubuntu并具有写权限。

似乎sudo成功。为什么?

编辑:ubuntu:ubuntu拥有当前目录和父目录(我在/ home / ubuntu / workspace中)

7 个答案:

答案 0 :(得分:5)

TL; TR

运行:

sudo chown -R $USER:$USER '/home/REPLACE_WITH_YOUR_USERNAME/.npm/'

在Linux操作系统上,NPMNodeJSsudo一起全局安装,这些文件的所有者是 root ,通常是 user < / strong>只能读取/执行该软件包。暂停NPM后,会创建一个〜/ .npm / 文件夹。通过运行create-react-app,您以用户的身份执行命令,而create-react-app试图修改〜/ .npm / 目录中的某些内容由 root 而不是当前用户使用。您需要将目录的所有者更改为您,以便您可以在没有sudo特权的情况下对其进行修改。

例如,当您使用NPM安装sudo软件包时,通常会发生类似的情况。 sudo npm install <package> --save。同样,新安装的软件包由 root 拥有,例如,当您尝试更新/修改/删除项目而没有sudo的{​​{1}}侵权时,您将遇到类似的权限错误。在这些情况下,请浏览至您的项目目录并通过运行以下命令更改其所有者:

NPM

答案 1 :(得分:2)

新的安装方式将解决此问题。

根据最新的react文档,请按照以下步骤创建react应用

npx create-react-app my-app
cd my-app
npm start
  
    

注意(来自ReactJS团队):       如果您以前安装过create-react-app     通过npm install -g create-react-app在全球范围内,我们建议您     使用npm卸载软件包-g create-react-app     确保npx始终使用最新版本。

  

请参阅官方文档: https://facebook.github.io/create-react-app/docs/getting-started

答案 2 :(得分:2)

在Mac上出现此问题

Reactjs's Getting Started documentation开始工作。

环境

  • OSX Mojave 10.14.3
  • NodeJS v10.15.0

错误

  • 命令
    npx create-react-app my-app
    
  • 输出
    Unhandled rejection Error: EACCES: permission denied, mkdir '/Users/caseywise/.npm/_cacache/index-v5/ae/73'instal
    

修复

  

casewisewise 的NPM首选项目录上递归更改ownergroup

sudo chown -R caseywise:staff '/Users/caseywise/.npm/'

答案 3 :(得分:1)

删除或重命名/home/ubuntu/.npm/_cacache/

答案 4 :(得分:1)

使用/aircraft检查文件的所有者。所有者可能设置为ls -l /problem/dir/,而不是root(即myUserName)。

您首先要使用TWoodych中的own中的.npm/进行全局设置:

chown

如果在运行sudo chown -R $USER: ~/.npm/之后此问题已蔓延到其他/build/目录中,则可以转到这些目录并运行相同的命令:

npm run build

请注意,sudo chown -R $USER: ./problem/dir/命令正在使用chown标志来更改植根于文件而不是文件本身的层次结构的用户ID和/或组ID。另请注意,参数-R是使用您的用户名(即$USER:myUserName)并替换了TWoody的“组” ID(第二个参数null)。

答案 5 :(得分:0)

我在 Mac catalina 10.15 上有同样的错误

必须使用sudo,因为root是npm文件夹的所有者,用户尝试修改npm文件夹下的一些文件,必须以root身份通过sudo运行。

解决方法是:

            sudo dojo create app --name hello-world

答案 6 :(得分:0)

sudo chown -R your_user ~/your_projects_directory