#node.js #npm #nvm #expo
Вопрос:
Поэтому у меня возникли проблемы с инициализацией проекта expo, все работает, я использую nvm
at 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
И ни один из них не работает, поэтому я сделал что-то случайное, и это сработало… смотрите ответ ниже
Ответ №1:
Я сделал там все, включая следующее:
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
каталога, и он показывает правильное разрешение с правильным владельцем… Мне никогда не приходило в голову, что что-то внутри было сломано, и удаление их работает. Я уверен, что это просто редкая вещь, которая почти никогда не случалась ни с кем другим (я никогда не сталкивался с этим до сих пор, так что…), но если это случится с кем-то, я надеюсь, что это поможет 🙌
Ответ №2:
Вместо того , чтобы использовать Default
опцию How would you like to start
«выбрать Template from expo/examples: https://github.com/expo/examples
«, это сработало для меня