世博会:找不到模块LogReporter

Sad*_*dhu 14 react-native expo

我创建了一个React Native Project,我试图在Expo XDE中打开该项目.它会引发以下错误:

Cannot find module ...\node_modules\expo\tools\LogReporter

首先,我通过克隆KitchenSink项目创建了一个React Native项目.链接:

NativeBase-的KitchenSink

当我通过在项目根目录中发出一系列命令来启动项目时:

npm install 然后 expo start

我看到app.json也不合适,如下:

{
  "name": "NativebaseKitchenSink",
  "displayName": "NativebaseKitchenSink"
}
Run Code Online (Sandbox Code Playgroud)

发出expo startreact-native报告后,app.json在当前目录中找不到.

[17:05:08]在D:\ Projects\ReactNativeProjects\AwesomeProject [17:05:10]启动项目错误:缺少app.json.见https://docs.expo.io/ [17:05:10]无法启动项目.请修复错误并重新启动项目.[17:05:10]错误:无法启动项目.请修复错误并重新启动项目.在C:\ xdl@51.4.0\SRC\Project.js:1565:11在Generator.next()在步骤(C:\用户\ HP \应用程序数据\漫游\ NPM \node_modules \博览会-CLI \node_modules\XDL\build\Project.js:2033:191)at C:\ Users\hp\AppData\Roaming \npm \node_modules\expo-cli \node_modules\xdl\build\Project.js:2033:361 at process._tickCallback(internal /process/next_tick.js:68:7)

我将app.json更改为:

{
  "expo": {
    "name": "AwesomeProject",
    "description": "A Kitchen Sink project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": [
      "ios",
      "android"
    ],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.abhsax.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/logo.png",
    "splash": {
      "image": "./assets/splashscreen.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

当我npm install再次发布时,项目中有一些更新.然后我发出:

expo start
Run Code Online (Sandbox Code Playgroud)

出现此错误:

(节点:2044)UnhandledPromiseRejectionWarning:错误:找不到模块 'd:\项目\ ReactNativeProjects\AwesomeProject \node_modules \博览会\工具\ LogReporter'

为什么我会收到此错误,我该如何解决?

war*_*rch 10

检查package.json它是否包含所有必需的依赖项并npm install在项目的主目录中运行

如果缺少包,您可以添加它

npm install <package_name> --save
Run Code Online (Sandbox Code Playgroud)

如果你正在使用纱线运行:

yarn add expo
Run Code Online (Sandbox Code Playgroud)


mza*_*zar 9

我做了:

yarn add expo
Run Code Online (Sandbox Code Playgroud)

它对我有用=)


Abh*_*ena 6

查看文档:

引入键式纱线和 - a - 公共路线图

NPM-VS-纱线在反应的天然

这些文档说,由于使用Yarn配置项目,您必须遵循Yarn方式.[Note: There is a file yarn.lock inside the root directory of the project, you have posted]

因此,按照文档中的说明处理此类项目.

请参阅如何使用Yarn创建React Native项目?用实际创建react-native项目Yarn.

在添加使用之前,请务必删除node_modules文件夹和发出命令.您必须从项目根目录中删除.这将是为了防止混合不同的包管理器:和.npm installreact native CLIyarnpackage-lock.jsonnpmyarn

相反,最好不要使用npm,并且为了生成node_modules,只需发出命令:

yarn
Run Code Online (Sandbox Code Playgroud)

最后一个链接建议使用yarn安装所需的每个包,而不是使用任何其他包管理器:

yarn global add react-native-cli
Run Code Online (Sandbox Code Playgroud)

添加react-native:

yarn add react-native
Run Code Online (Sandbox Code Playgroud)

添加缺少的包:

yarn add react-base --save
Run Code Online (Sandbox Code Playgroud)

并使用纱线安装世博会:

yarn add expo
Run Code Online (Sandbox Code Playgroud)

安装expo-cli

yarn add expo-cli
Run Code Online (Sandbox Code Playgroud)

你可以不用Expo.只关注react-nativeyarn.

生成androidios文件夹:

react-native eject
Run Code Online (Sandbox Code Playgroud)

开始纱线:

yarn start
Run Code Online (Sandbox Code Playgroud)

运行您选择的构建,并确保已安装SDK.

react-native run-android
Run Code Online (Sandbox Code Playgroud)

另请参阅:Uncaught TypeError:在KitchenSink演示中无法读取未定义的属性'forEach'

快乐编码:-)