【问题标题】:Unable to Resolve Module in React Native App with Expo无法使用 Expo 解决 React Native App 中的模块
【发布时间】:2019-11-26 20:27:50
【问题描述】:

我正在尝试移植现有的 RN 应用以使用 Expo。

我已经尝试了通常的步骤:终止 Expo 进程;垃圾节点模块; npm 缓存清理; npm 安装; watchman watch-del-all; rm -fr $TMPDIR/地铁*; rm -fr $TMPDIR/急速*

/Users/matt/Documents/platform-prototype/XXXXXXXXXX/built/ios/debug/obj/XXXXXXXXXX/src/appWiring/ios/app.json:

{
  "name": "XXXXXXXX",
  "displayName": "XXXXXXXX",
  "expo": {
    "name": "XXXXXXXX",
    "slug": "xxxxxxxx",
    "entryPoint": "./index.js",
    "sdkVersion": "33.0.0",
    "version": "1.0",
    "platforms": [
      "ios",
      "android"
    ],
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "ios": {
      "supportsTablet": true
    }
  }
}

/Users/matt/Documents/platform-prototype/XXXXXXXXXX/built/ios/debug/obj/XXXXXXXXXX/src/appWiring/ios/index.js:

import App from "./App";
import { registerRootComponent } from "expo";
registerRootComponent(App);

/Users/matt/Documents/platform-prototype/XXXXXXXXXX/built/ios/debug/obj/XXXXXXXXXX/src/appWiring/ios/.babelrc:

{
  "presets": ["babel-preset-expo"],
  "plugins": [
    ["module-resolver", {
      "root": [
        "../../../",
        "../../../../platform-client-react/src",
        "../../../../platform-client-react-native/src"
      ],
      "alias": {
          "@platform-client-react" : "../../../../platform-client-react/src/",
          "@platform-client-react-native" : "../../../../platform-client-react-native/src/"
      },
    }],
  ]
}

/Users/matt/Documents/platform-prototype/XXXXXXXXXX/built/ios/debug/obj/platform-client-react/src/index.js:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const ConsoleLogger_1 = require("./platform/client-react/logger/ConsoleLogger");
etc. etc. etc.

当我尝试在 iOS 模拟器中运行应用程序时,expo 开发工具显示此错误:

error: bundling failed: Error: Unable to resolve module `../../../../platform-client-react/src` from `/Users/matt/Documents/platform-prototype/XXXXXXXXXXX/built/ios/debug/obj/XXXXXXXXXXX/src/appWiring/ios/App.js`: The module `../../../../platform-client-react/src` could not be found from `/Users/matt/Documents/platform-prototype/XXXXXXXXXXX/built/ios/debug/obj/XXXXXXXXXXX/src/appWiring/ios/App.js`. Indeed, none of these files exist:

  * `/Users/matt/Documents/platform-prototype/XXXXXXXXXXX/built/ios/debug/obj/platform-client-react/src(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)`

  * `/Users/matt/Documents/platform-prototype/XXXXXXXXXXX/built/ios/debug/obj/platform-client-react/src/index(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)`

其实/Users/matt/Documents/platform-prototype/XXXXXXXXXXX/built/ios/debug/obj/platform-client-react/src/index.js文件确实存在,如上所示。我不知道为什么地铁捆绑商认为它没有。

【问题讨论】:

    标签: react-native expo


    【解决方案1】:

    它在错误“确实,这些文件都不存在”中说明了一切。 问题是它正在寻找一个名为 App.js 的文件,而不是 index.js。因此,要解决此问题,您只需创建一个 App.js 文件并通过该文件导出应用程序。

    【讨论】:

    • 不确定 - 在“这些文件都不存在”下,文件列表包括 /Users/matt/Documents/platform-prototype/XXXXXXXXXXX/built/ios/debug/obj/platform-client-react/src/index(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx) - 但 src/index.js 是我的内容'上面摘录了。
    最近更新 更多