node.js - 下载和提取项目文件时出错响应正文无效〜blah〜expo-template-bare-minimum:EACCES:权限被拒绝
问题描述
所以我在初始化 expo 项目时遇到了麻烦,一切正常,我正在使用nvm
.node v14.16.1 (npm v7.11.2)
expo init Doorgy
✔ Choose a template: › minimal bare and minimal, just the essentials to get you started
✖ Something went wrong in downloading and extracting the project files.
Invalid response body while trying to fetch https://registry.npmjs.org/expo-template-bare-minimum: EACCES: permission denied, open '/home/anthonykung/.expo/template-cache/tmp/0d1e04ab'
FetchError: Invalid response body while trying to fetch https://registry.npmjs.org/expo-template-bare-minimum: EACCES: permission denied, open '/home/anthonykung/.expo/template-cache/tmp/0d1e04ab'
at /home/anthonykung/.npm-global/lib/node_modules/expo-cli/node_modules/minipass-fetch/lib/body.js:162:15
at extractTemplateAppAsync (/home/anthonykung/.npm-global/lib/node_modules/expo-cli/src/utils/extractTemplateAppAsync.ts:118:3)
at extractAndPrepareTemplateAppAsync (/home/anthonykung/.npm-global/lib/node_modules/expo-cli/src/utils/extractTemplateAppAsync.ts:82:3)
at action (/home/anthonykung/.npm-global/lib/node_modules/expo-cli/src/commands/init.ts:270:19)
at Command.<anonymous> (/home/anthonykung/.npm-global/lib/node_modules/expo-cli/src/exp.ts:350:7)
无论我做什么,它都会不断地向我抛出这个错误,我尝试修复npm
,我尝试修复nvm
,使用不同的版本,卸载,弄乱注册表,几乎所有我能找到的东西,但它只是一直显示这个烦人的错误......
这是我所做的很长的清单:
npm install -g npm@latest
npm install -g expo-cli
sudo npm install -g expo-cli
node -v
sudo apt-get update
npm cache verify
sudo expo init Doorgy
npm config set registry https://registry.npmjs.org/
vi ~/.npmrc
npm outdated -g
npm uninstall -g expo-cli
npm install -g expo-cli
expo init Doorgy
~/.npm-global
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
npm config delete prefix
expo init Doorgy
npm config set prefix $NVM_DIR/versions/node/v14.16.1
expo init Doorgy
npm config set prefix '~/.npm-global'
vi ~/.profile
source ~/.profile
npm i -g expo-cli
expo init Doorgy
nvm use default
npm i -g expo-cli
expo init Doorgy
npm config delete prefix
npm i -g expo-cli
npm cache verify
sudo npm i -g expo-cli
npm i -g expo-cli
expo init Doorgy
nvm use default
sudo npm i -g expo-cli
expo init Doorgy
npm cache clean
cd
ls
ls -al
cd dev/DoorgyApp/
expo init Doorgy
npx expo init Doorgy
sudo npm install --unsafe-perm -g expo-cli
expo init Doorgy
npm config set strict-ssl false
expo init Doorgy
npm config set strict-ssl true
npm uninstall expo-cli
npm uninstall -g expo-cli
nvm use default
cp ~/.npmrc ~/.old-npmrc
vi ~/.npmrc
expo init Doorgy
npm uninstall -g expo-cli
sudo npm uninstall -g expo-cli
而且它们都不起作用,所以我随机做了一些事情并且它起作用了......请参阅下面的答案
解决方案
我做了所有事情,包括以下内容:
npm cache verify
sudo npm install --unsafe-perm -g expo-cli
npm config set strict-ssl false
但是它们都不起作用,所以我决定卸载 expo-cli 并重新安装。所以我愿意
npm uninstall -g expo-cli
令我惊讶的是,它幸存下来了,我仍然可以使用expo init
,所以我很自然地添加了 sudo 并猜测它还在那里。现在非常沮丧,我尝试从我的主目录开始删除它存在的每个地方。
rm -rf /home/anthonykung/.expo/
rm: cannot remove '/home/anthonykung/.expo/template-cache/index-v5/d6/46/41a4d65191fd14edff849b1a5474a12dec9a503a4065b3d9fcfc568a5a3d': Permission denied
rm: cannot remove '/home/anthonykung/.expo/template-cache/index-v5/70/6f/218f4428aaa14899cf226ad3dbf086f32f36d36b64c6e5c3423b10488c8e': Permission denied
rm: cannot remove '/home/anthonykung/.expo/template-cache/content-v2/sha512/6d/28/efad7e78f4322111b65ccfd0dbcf763fc05cf73cc83edd751dc168af2e09437205de510f66ac3bc3289aeee7bd594cd3a8a9661e76fcd2ff263fd8dc4d11': Permission denied
rm: cannot remove '/home/anthonykung/.expo/template-cache/content-v2/sha512/23/26/522f178834febb149d5f9085ab51a65d6c43cac596a90ac4234151594e5248f32c03efb71870cd71e355781bdb0a80907f8bcac53d31ca8c34ec0897167d': Permission denied
rm: cannot remove '/home/anthonykung/.expo/template-cache/tmp': Permission denied
sudo rm -rf /home/anthonykung/.expo/
但是我想到了一些东西……Permission denied
这听起来像是错误博览会在大喊大叫!所以我expo init
又寄予厚望,然后......
✔ Choose a template: › minimal bare and minimal, just the essentials to get you started
✔ Downloaded and extracted project files.
Using npm to install packages.
✔ Installed JavaScript dependencies.
✔ Skipped installing CocoaPods because operating system is not on macOS.
✅ Your project is ready!
To run your project, navigate to the directory and run one of the following npm commands.
- cd Doorgy
- npm run android
- npm run ios # you need to use macOS to build the iOS project - use managed workflow if you need to do iOS development without a Mac
- npm run web
You can also open up the projects in the ios and android directories with their respective IDEs.
expo-updates (https://github.com/expo/expo/blob/master/packages/expo-updates/README.md) has been installed in your project. Before you do a release build, you'll need to configure a few values in Expo.plist and AndroidManifest.xml in order for updates to work.
有用!!!天哪!
在我删除它之前,我检查了~/.expo
目录的权限和所有者,它显示了正确所有者的正确权限......我从来没有想过里面的东西被破坏并且删除它们是有效的。我敢肯定这只是一件罕见的事情,几乎从未发生在其他人身上(直到现在我从未遇到过这种情况,所以......)但如果它确实发生在某人身上,我希望这会有所帮助
推荐阅读
- c++ - 为什么 C++ 允许前向声明类而不是枚举?
- android - Android 应用选择性地显示谷歌地图
- git - git 由于 --skip-worktree 更改而阻止结帐
- python - 为什么tableView中列的宽度没有变化
- python - Python 格式百分比
- azure - 在 ARM 模板中指定资源组以创建 Azure 开发测试实验室 VM
- asp.net-core - EF Core 有连接池吗?
- python - 通过计算零余数来检查一个数是否是素数
- python - 如何将字符串中的偶数字母大写和奇数字母小写?
- reactjs - 错误:使用酶未找到节点的问题。方法文本