J'essaie d'installer expo pour utiliser react native, en utilisant npm install -g expo-cli
mais j'obtiens d'énormes journaux d'erreurs.
J'ai essayé de chown / usr / local
en utilisant sudo chown -R $ (whoami) $ (brew --prefix) / * / usr / local
et sudo chown -R $ USER / usr / local code > mais j'obtiens
chown: / usr / local: opération non autorisée
. J'ai essayé de mettre à jour node et npm, les supprimer, les réinstaller, mettre à jour avec homebrew, installer expo-cli avec homebrew. J'ai essayé l'installation de sudo. J'obtiens des erreurs similaires. J'ai essayé yarn add global expo-cli
et j'ai eu presque exactement le même résultat que celui que j'ai obtenu de npm install -g expo-cli
concernant les dépendances.
Voici le résultat que j'obtiens dans le terminal en exécutant npm install -g expo-cli
:
npm WARN deprecated joi@14.0.4: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated joi@11.4.0: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated topo@2.0.2: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated hoek@4.2.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated topo@3.0.3: This module has moved and is now available at @hapi/topo. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. npm WARN deprecated hoek@6.1.3: This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. > @expo/traveling-fastlane-darwin@1.9.4 preinstall /usr/local/lib/node_modules/expo-cli/node_modules/@expo/traveling-fastlane-darwin > node platform.js shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied path.js:1077 path = process.cwd(); ^ Error: EACCES: permission denied, uv_cwd at Object.resolve (path.js:1077:24) at startup (internal/bootstrap/node.js:269:32) at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3) /usr/local/bin/expo-cli -> /usr/local/lib/node_modules/expo-cli/bin/expo.js /usr/local/bin/expo -> /usr/local/lib/node_modules/expo-cli/bin/expo.js > fsevents@1.2.9 install /usr/local/lib/node_modules/expo-cli/node_modules/fsevents > node install shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied path.js:1077 path = process.cwd(); ^ Error: EACCES: permission denied, uv_cwd at Object.resolve (path.js:1077:24) at startup (internal/bootstrap/node.js:269:32) at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3) > iltorb@2.4.3 install /usr/local/lib/node_modules/expo-cli/node_modules/iltorb > node ./scripts/install.js || node-gyp rebuild shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Permission denied path.js:1077 path = process.cwd(); ^ Error: EACCES: permission denied, uv_cwd at Object.resolve (path.js:1077:24) at startup (internal/bootstrap/node.js:269:32) at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3) sh: node-gyp: command not found job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Permission denied > sharp@0.22.1 install /usr/local/lib/node_modules/expo-cli/node_modules/sharp > (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy) shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Permission denied job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Permission denied path.js:1077 path = process.cwd(); ^ Error: EACCES: permission denied, uv_cwd at Object.resolve (path.js:1077:24) at startup (internal/bootstrap/node.js:269:32) at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3) sh: node-gyp: command not found job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Permission denied job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Permission denied npm WARN @expo/dev-tools@0.5.14 requires a peer of @expo/xdl@^53.8.0 but none is installed. You must install peer dependencies yourself. npm WARN ts-pnp@1.1.2 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/traveling-fastlane-linux@1.9.4 (node_modules/expo-cli/node_modules/@expo/traveling-fastlane-linux): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/traveling-fastlane-linux@1.9.4: wanted {"os":"win32,linux","arch":"any"} (current: {"os":"darwin","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/ngrok-bin-win32-x64@2.2.8-beta.1 (node_modules/expo-cli/node_modules/@expo/ngrok-bin-win32-x64): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/ngrok-bin-win32-x64@2.2.8-beta.1: wanted {"os":"win32","arch":"x64"} (current: {"os":"darwin","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/ngrok-bin-win32-ia32@2.2.8-beta.1 (node_modules/expo-cli/node_modules/@expo/ngrok-bin-win32-ia32): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/ngrok-bin-win32-ia32@2.2.8-beta.1: wanted {"os":"win32","arch":"ia32"} (current: {"os":"darwin","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/ngrok-bin-sunos-x64@2.2.8 (node_modules/expo-cli/node_modules/@expo/ngrok-bin-sunos-x64): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/ngrok-bin-sunos-x64@2.2.8: wanted {"os":"sunos","arch":"x64"} (current: {"os":"darwin","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/ngrok-bin-linux-x64@2.2.8 (node_modules/expo-cli/node_modules/@expo/ngrok-bin-linux-x64): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/ngrok-bin-linux-x64@2.2.8: wanted {"os":"linux","arch":"x64"} (current: {"os":"darwin","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/ngrok-bin-linux-ia32@2.2.8 (node_modules/expo-cli/node_modules/@expo/ngrok-bin-linux-ia32): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/ngrok-bin-linux-ia32@2.2.8: wanted {"os":"linux","arch":"ia32"} (current: {"os":"darwin","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/ngrok-bin-linux-arm64@2.2.8 (node_modules/expo-cli/node_modules/@expo/ngrok-bin-linux-arm64): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/ngrok-bin-linux-arm64@2.2.8: wanted {"os":"linux","arch":"arm64"} (current: {"os":"darwin","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/ngrok-bin-linux-arm@2.2.8 (node_modules/expo-cli/node_modules/@expo/ngrok-bin-linux-arm): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/ngrok-bin-linux-arm@2.2.8: wanted {"os":"linux","arch":"arm"} (current: {"os":"darwin","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/ngrok-bin-freebsd-ia32@2.2.8 (node_modules/expo-cli/node_modules/@expo/ngrok-bin-freebsd-ia32): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/ngrok-bin-freebsd-ia32@2.2.8: wanted {"os":"freebsd","arch":"ia32"} (current: {"os":"darwin","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/ngrok-bin-freebsd-x64@2.2.8 (node_modules/expo-cli/node_modules/@expo/ngrok-bin-freebsd-x64): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/ngrok-bin-freebsd-x64@2.2.8: wanted {"os":"freebsd","arch":"x64"} (current: {"os":"darwin","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/ngrok-bin-darwin-ia32@2.2.8 (node_modules/expo-cli/node_modules/@expo/ngrok-bin-darwin-ia32): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/ngrok-bin-darwin-ia32@2.2.8: wanted {"os":"darwin","arch":"ia32"} (current: {"os":"darwin","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/traveling-fastlane-darwin@1.9.4 (node_modules/expo-cli/node_modules/@expo/traveling-fastlane-darwin): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/traveling-fastlane-darwin@1.9.4 preinstall: `node platform.js` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/expo-cli/node_modules/fsevents): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 install: `node install` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: iltorb@2.4.3 (node_modules/expo-cli/node_modules/iltorb): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: iltorb@2.4.3 install: `node ./scripts/install.js || node-gyp rebuild` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: spawn ENOENT npm ERR! file sh npm ERR! code ELIFECYCLE npm ERR! errno ENOENT npm ERR! syscall spawn npm ERR! sharp@0.22.1 install: `(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)` npm ERR! spawn ENOENT npm ERR! npm ERR! Failed at the sharp@0.22.1 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Quand j'essaye d'utiliser yarn add
J'obtiens les mêmes erreurs sur les dépendances mais au lieu de "npm ERR!" partie que j'obtiens:
[2/4] ð Fetching packages... info @expo/traveling-fastlane-linux@1.9.4: The platform "darwin" is incompatible with this module. info "@expo/traveling-fastlane-linux@1.9.4" is an optional dependency and failed compatibility check. Excluding it from installation. info @expo/ngrok-bin-darwin-ia32@2.2.8: The CPU architecture "x64" is incompatible with this module. info "@expo/ngrok-bin-darwin-ia32@2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation. info @expo/ngrok-bin-linux-arm@2.2.8: The platform "darwin" is incompatible with this module. info "@expo/ngrok-bin-linux-arm@2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation. info @expo/ngrok-bin-linux-arm@2.2.8: The CPU architecture "x64" is incompatible with this module. info @expo/ngrok-bin-linux-arm64@2.2.8: The platform "darwin" is incompatible with this module. info "@expo/ngrok-bin-linux-arm64@2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation. info @expo/ngrok-bin-linux-arm64@2.2.8: The CPU architecture "x64" is incompatible with this module. info @expo/ngrok-bin-freebsd-x64@2.2.8: The platform "darwin" is incompatible with this module. info "@expo/ngrok-bin-freebsd-x64@2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation. info @expo/ngrok-bin-freebsd-ia32@2.2.8: The platform "darwin" is incompatible with this module. info "@expo/ngrok-bin-freebsd-ia32@2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation. info @expo/ngrok-bin-freebsd-ia32@2.2.8: The CPU architecture "x64" is incompatible with this module. info @expo/ngrok-bin-linux-x64@2.2.8: The platform "darwin" is incompatible with this module. info "@expo/ngrok-bin-linux-x64@2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation. info @expo/ngrok-bin-sunos-x64@2.2.8: The platform "darwin" is incompatible with this module. info "@expo/ngrok-bin-sunos-x64@2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation. info @expo/ngrok-bin-win32-ia32@2.2.8-beta.1: The platform "darwin" is incompatible with this module. info "@expo/ngrok-bin-win32-ia32@2.2.8-beta.1" is an optional dependency and failed compatibility check. Excluding it from installation. info @expo/ngrok-bin-win32-ia32@2.2.8-beta.1: The CPU architecture "x64" is incompatible with this module. info @expo/ngrok-bin-win32-x64@2.2.8-beta.1: The platform "darwin" is incompatible with this module. info "@expo/ngrok-bin-win32-x64@2.2.8-beta.1" is an optional dependency and failed compatibility check. Excluding it from installation. info @expo/ngrok-bin-linux-ia32@2.2.8: The platform "darwin" is incompatible with this module. info "@expo/ngrok-bin-linux-ia32@2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation. info @expo/ngrok-bin-linux-ia32@2.2.8: The CPU architecture "x64" is incompatible with this module. [3/4] ð Linking dependencies... warning "expo-cli > @expo/dev-tools@0.5.14" has incorrect peer dependency "@expo/xdl@^53.8.0". error An unexpected error occurred: "EACCES: permission denied, unlink '/Users/<username>/node_modules/.bin/detect-libc'". info If you think this is a bug, please open a bug report with the information provided in "/Users/<username>/yarn-error.log". info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
Quand j'exécute sudo npm install -g expo-cli
j'obtiens ce qui suit:
npm WARN deprecated joi@11.4.0: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated hoek@4.2.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated topo@2.0.2: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated hoek@6.1.3: This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. npm WARN deprecated topo@3.0.3: This module has moved and is now available at @hapi/topo. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules npm WARN @expo/dev-tools@0.5.14 requires a peer of @expo/xdl@^53.8.0 but none is installed. You must install peer dependencies yourself. npm WARN ts-pnp@1.1.2 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself. npm ERR! path /usr/local/lib/node_modules npm ERR! code EACCES npm ERR! errno -13 npm ERR! syscall access npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules' npm ERR! { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules'] npm ERR! stack: npm ERR! 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'', npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'access', npm ERR! path: '/usr/local/lib/node_modules' } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator (though this is not recommended).
Je m'attendais à ce que la sortie dise quelque chose comme expo installé ok, mais à la place, il me donne les journaux d'erreurs sur les dépendances et les autorisations.
3 Réponses :
Vous devez disposer d'un accès super utilisateur pour installer un package globalement. Essayer:
sudo npm install -g expo-cli
Je n'ai jamais dit que c'était la mauvaise ou la seule manière. Je ne connais pas de moyen d'installer un package globalement sans sudo
. Mais chaque fois que j'ai inclus sudo
pour installer un package globalement, cela a fonctionné, aucune question posée. S'il y a une "bonne" façon, veuillez nous en informer.
Vous pouvez utiliser l'alternative npx à npm install. Je ne peux pas réparer l'erreur, mais $ npx expo init Awesomeproject fonctionne.
Le seul inconvénient de l'utilisation de npx est de prendre plus de temps que d'utiliser expo préinstallé. Essayez npx!
La meilleure solution que j'ai trouvée, car cela est lié à certains nouveaux contrôles d'autorisations dans macOS est d'utiliser l'option 2 ici: https://github.com/mixonic/docs.npmjs.com/blob/master/content/getting-started/fixing -npm-permissions.md
Cela modifie votre dossier d'accueil par défaut pour les modules globaux, ce qui peut nécessiter la réinstallation d'autres lors de la mise à jour, mais n'affectera pas ceux déjà installés.
Sinon, une méthode non sûre pour le faire est:
sudo npm i -g --unsafe-perm expo-cli
Vous devez être sous une administration proxy. Veuillez essayer d'exécuter l'installation en tant qu'administrateur. Le journal des erreurs le dit également. J'espère que vous avez ajouté le proxy http et https à votre cli
Voulez-vous dire l'exécuter avec sudo? J'ai ajouté le journal des erreurs que j'obtiens en exécutant
sudo npm install -g expo-cli
au bas du message principal ci-dessus. Je n'ai pas ajouté de proxy http ou https, avez-vous des liens pour savoir comment faire?Voulez-vous dire comme ça? wikihow.com/Open-Applications-With-Root- Privilèges sur un Mac
Je ne sais pas exactement ce qui a fonctionné mais j'ai réinstallé le nœud via homebrew et à nouveau via le téléchargement à partir du site Web du nœud et j'ai supprimé un dossier de modules de nœud sur mon dossier utilisateur et maintenant cela fonctionne, tout en donnant des avertissements pour les dépendances facultatives