使用 npm 安装 react-navigation 会报错

installing react-navigation with npm gives an error

我知道已经有关于此的问题,但它们没有用,其中大部分是针对 create-react-native-app 的,但我正在使用 expo。

我 运行 npm install react-navigation 它给了我这个错误:

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: file-uri-to-path@1.0.0 (node_modules\file-uri-to-path):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename 'C:\Users\yaelp\Downloads\meals-cat\node_modules\file-uri-to-path' -> 'C:\Users\yaelp\Downloads\meals-cat\node_modules\.file-uri-to-path.DELETE'

npm ERR! code ENOENT
npm ERR! syscall rename
npm ERR! path C:\Users\yaelp\Downloads\meals-cat\node_modules\hoist-non-react-statics
npm ERR! dest C:\Users\yaelp\Downloads\meals-cat\node_modules\.hoist-non-react-statics.DELETE
npm ERR! errno -4058
npm ERR! enoent ENOENT: no such file or directory, rename 'C:\Users\yaelp\Downloads\meals-cat\node_modules\hoist-non-react-statics' -> 'C:\Users\yaelp\Downloads\meals-cat\node_modules\.hoist-non-react-statics.DELETE'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\yaelp\AppData\Roaming\npm-cache\_logs20-10-01T17_02_25_868Z-debug.log

尝试像使用 expo 一样使用 expo install react-navigation

如果需要使用npm,试试:

npm install react-navigation --force

尝试安装所有依赖项(来自react-navigation的文档)。

运行:

expo install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view

我希望你现在已经解决了你的问题(自你发布问题以来已经过去了一个多月)。对于那些可能得到它的人(就像我一样),这里有一些可能的解决方案:

  1. 用纱线安装react-navigation: 在官方react-navigation docs里面有一个yarn install命令:

    纱线添加react-native-reanimatedreact-native-gesture-handlerreact-native-screensreact-native-safe-area-context@react-native-community/masked-view

  2. 尝试删除 package-lock.json 文件,然后再次尝试使用 npm 安装 react-navigation

  3. 正在终止您的应用,然后尝试安装 react-navigation、

  4. 正在删除您的 node_modules 并再次执行 npm i

  5. 尝试卸载 node、npm 及其所有内容(当然之后重新安装所有内容)。

我从这个 github issue 中得到了这些解决方案。我希望其中之一能有所帮助。

尝试 运行 npm install,然后 npm install @react-navigation/native from reactnavigation