我遇到一个奇怪的错误:
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中)
答案 0 :(得分:5)
TL; TR
运行:
sudo chown -R $USER:$USER '/home/REPLACE_WITH_YOUR_USERNAME/.npm/'
在Linux操作系统上,NPM
和NodeJS
与sudo
一起全局安装,这些文件的所有者是 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)
从Reactjs's Getting Started documentation开始工作。
10.14.3
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首选项目录上递归更改
owner
:group
sudo chown -R caseywise:staff '/Users/caseywise/.npm/'
答案 3 :(得分:1)
删除或重命名/home/ubuntu/.npm/_cacache/
答案 4 :(得分:1)
使用/aircraft
检查文件的所有者。所有者可能设置为ls -l /problem/dir/
,而不是root
(即myUserName
)。
您首先要使用TWoody
对ch
中的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