首页 > 解决方案 > 将 react-native 应用程序发布到 expo.io 时出现“ResourceNotFoundError”

问题描述

我有两个正在尝试发布的移动应用程序。第一个非常简单:

$ expo publish

但是,第二个向我显示了一个我无法理解的错误:

$ cd ~/sites/cvoeo-app
$ expo publish
There is a new version of expo-cli available (2.6.0).
You are currently using expo-cli 2.2.4
Run `npm install -g expo-cli` to get the latest version
[12:59:51] Publishing to channel 'default'...
[12:59:54] Building iOS bundle
[12:59:54] 404 - "{\"type\":\"ResourceNotFoundError\",\"errors\":[],\"message\":\"The resource `/Users/micah/sites/fun-food-friends/node_modules/expo/AppEntry.js` was not found.\"}"
[12:59:54] StatusCodeError: 404 - "{\"type\":\"ResourceNotFoundError\",\"errors\":[],\"message\":\"The resource `/Users/micah/sites/fun-food-friends/node_modules/expo/AppEntry.js` was not found.\"}"
    at new StatusCodeError (/Users/micah/.config/yarn/global/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/Users/micah/.config/yarn/global/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/Users/micah/.config/yarn/global/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at Request.self.callback (/Users/micah/.config/yarn/global/node_modules/request/request.js:185:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)
    at Request.<anonymous> (/Users/micah/.config/yarn/global/node_modules/request/request.js:1161:10)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at IncomingMessage.<anonymous> (/Users/micah/.config/yarn/global/node_modules/request/request.js:1083:12)

我要发布的应用程序是我的“cvoeo-app”。

但是,调试消息显示,expo 正在抱怨来自一个完全不同的项目“fun-food-friends”应用程序缺少资源。我不小心在这个目录中创建了一个 react native 应用程序,将其删除,然后在那里重新创建了一个同名的 React JS 应用程序。

expo 找不到 fun-food-friends 文件并不令我感到惊讶——但令我惊讶的是,expo 甚至试图寻找它。为什么要在完全不同的目录树和项目中寻找资源?

标签: react-nativeexpo

解决方案


React native 在单独的终端窗口中运行服务器。

由于您运行了前一个应用程序并且没有关闭运行前一个应用程序时打开的终端窗口,因此当您运行新应用程序时,react-native 没有打开新的终端窗口来创建新服务器(因为一个已经在运行) 并且您设备上的新应用程序仍在与试图为您已删除的旧应用程序提供服务的旧服务器通信。

因此,您收到“ResourceNotFound”错误。

解决方案只是关闭您的旧终端并再次运行您的新应用程序。


推荐阅读