如何修复 npm start “无法确定原生 SDK 版本”错误?
Posted
技术标签:
【中文标题】如何修复 npm start “无法确定原生 SDK 版本”错误?【英文标题】:How to fix npm start "cannot determine native SDK version" error? 【发布时间】:2020-08-05 23:23:13 【问题描述】:我正在尝试使用 npm start 和 expo 从 ubuntu 上的 github 存储库运行我的 react 本机代码。当我运行 npm start 时,出现以下错误:
“由于未安装模块expo
,无法确定您的项目使用哪个原生SDK版本。请使用yarn add expo
安装它,然后重试。”
我已经尝试过“yarn add expo”,但这似乎不起作用,因为我无法让 yarn 工作并且它无法识别“add”。我也没有在这个问题上找到任何东西。有人知道发生了什么吗?
【问题讨论】:
哇,简直不敢相信解决方案如此简单,我一直在寻找该死的,谢谢!如果您发布答案,我会将其标记为已解决 【参考方案1】:尝试npm install expo
而不是yard add expo
。
注意: yarn
是另一个包管理器,就像npm
。如果您已经安装了npm
,那么您可以始终将yarn add
替换为npm install
。
【讨论】:
感谢您的想法。 您能帮忙解决这个问题吗:C:\Users\amran\Documents\rn-first-app 的项目中缺少包“metro”。这通常意味着未安装react-native
。请验证 package.json 中的依赖项是否包含“react-native”并运行 yarn
或 npm install
。
根据第一行缺少包地铁。请检查你需要安装 Metro 依赖的 package.json【参考方案2】:
只是想插话运行npm install
为我解决了这个问题。 (我发现问题可能是因为我的依赖项没有正确安装。)
当从远程存储库抓取项目时,它显然不会抓取 node_modules 文件夹(包含所有项目依赖项的文件夹),因为它位于 .gitignore 中。为什么它在 .gitignore 中?因为它太大了,可以在需要时轻松下载到本地机器上(通过运行npm install
)。
npm install
命令将 package.json 中的所有依赖项安装到名为 node_modules 的本地文件夹中,从而确保正确安装了我的所有依赖项。这样我的项目就可以工作了。
【讨论】:
【参考方案3】:我将 npm 更新到最新版本 ->
npm install -g npm@latest
卸载的expo -> npm uninstall -g expo-cli --save
删除 .expo 文件夹,重新安装 expo,这对我有用。
【讨论】:
【参考方案4】:这可能对某些人有所帮助,因为我是 rn expo 的新手。并得到了这个错误。
yarn install
【讨论】:
【参考方案5】:无法确定您的项目使用哪个原生 SDK 版本,因为未安装模块 expo
。请使用yarn add expo
安装并重试。
expo init 游戏区
× 安装 javascript 依赖时出错。检查你的 npm 日志。
安装 expo init 时遇到同样的问题。但是我注意到 javascript 依赖项安装有问题,所以我检查了 package.json :它在依赖项上有一些突出的问题:
"dependencies":
"expo": "~40.0.0",
"expo-status-bar": "~1.0.3",
"react": "16.13.1",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
"react-native-web": "~0.13.12"
简单的答案是:
npm 安装
** 它只会安装挂起的安装或互联网中断的 JavaScript 依赖项,将使用 package.json 文件检查或重新安装。如果 package.json 没有更新,则删除整个文件并重新启动 expo init name-of-file 同时交叉检查互联网连接**
【讨论】:
以上是关于如何修复 npm start “无法确定原生 SDK 版本”错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 npm-start 解决 react webpack 问题