将本地反应应用程序发布到expo.io时出现“ ResourceNotFoundError”

时间:2018-12-02 21:51:21

标签: react-native expo

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

$ 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应用程序。

博览会找不到有趣的食物朋友文件并不令我感到惊讶-但令我惊讶的是,博览会甚至还在寻找它。为什么会在完全不同的目录树和项目中寻找资源?

2 个答案:

答案 0 :(得分:0)

我不知道问题出在哪里,但是解决方案很简单:

$ rm -rf node_modules/ package-lock.json yarn.lock
$ npm install

之后,我可以毫无问题地发布到博览会。

答案 1 :(得分:0)

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

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

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

解决方案就是关闭旧终端并再次运行新应用。