本地反应,捆绑失败

Ale*_*r C 13 javascript ios npm reactjs react-native

我是新来的反应本地人,但发现了一个错误,使我对我毫无意义.

我想要包含一个日历库:https://github.com/wix/react-native-calendars

我已将该库的依赖项包含在我的package.json文件中并运行

import { Calendar, CalendarList, Agenda } from 'react-native-calendars';
Run Code Online (Sandbox Code Playgroud)

该项目运行良好,之前预计.我只是在项目中添加了一行代码:

import { Calendar, CalendarList, Agenda } from 'react-native-calendars';
Run Code Online (Sandbox Code Playgroud)

没有其他的.但是现在,当应用程序加载到设备上时,我收到一条红色错误消息,这就是我的控制台所说的:

错误:捆绑失败:错误:尝试npm install从文件解析模块时xdate,/Users/Alex/Documents/workspace/mobile/node_modules/react-native-calendars/src/index.js已成功找到包.但是,此包本身指定了一个/Users/Alex/Documents/workspace/mobile/node_modules/xdate/package.json无法解析的模块字段(main实际上,这些文件都不存在:

  • /Users/Alex/Documents/workspace/mobile/node_modules/xdate/src/xdate.js
  • /Users/Alex/Documents/workspace/mobile/node_modules/xdate/src/xdate.js(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json) 在DependencyGraph.resolveDependency(/ Users/Alex/Documents/workspace /)的ResolutionRequest.resolveDependency(/Users/Alex/Documents/workspace/mobile/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:103:15) mobile/node_modules/metro/src/node-haste/DependencyGraph.js:272:4579)at dependencies.map.relativePath(/Users/Alex/Documents/workspace/mobile/node_modules/metro/src/DeltaBundler/traverseDependencies.js: 376:19)在/ Users/Alex/Documents/workspace /的resolveDependencies(/Users/Alex/Documents/workspace/mobile/node_modules/metro/src/DeltaBundler/traverseDependencies.js:374:16)的Array.map()处mobile/node_modules/metro/src/DeltaBundler/traverseDependencies.js:212:33在Generator.next()的步骤(/Users/Alex/Documents/workspace/mobile/node_modules/metro/src/DeltaBundler/traverseDependencies.js:297 :313)atUsers/Alex/Documents/workspace/mobile/node_modules/metro/src/DeltaBundler/traverseDependencies.js:297:473 at

但是我已经检查了目录,实际上/Users/Alex/Documents/workspace/mobile/node_modules/xdate/src/xdate.js确实存在.但是我没有看到这部分:( .native || .ios.js | .native.js | .js | .ios.json | .native.json | .json)

至于/Users/Alex/Documents/workspace/mobile/node_modules/xdate/src/xdate.js/index如何存在,这没有意义,因为xdate.js不是目录.

有帮助吗?

Sar*_*hah 48

如果您在打包器打开时尝试安装模块,通常会发生这种情况.

尝试删除node_modules文件夹并关闭packager.然后npm install在项目目录中重新安装所有内容.

  • 我通过关闭打包器解决了"捆绑未在图表中注册的失败的referenceerror模块"的问题.谢谢 (7认同)
  • 如何关闭打包器? (2认同)

小智 17

首先关闭您的JavaScript捆绑程序(在我的情况下为Metro捆绑程序),然后重新启动应用程序。这将创建新的依赖图。这应该可以解决问题。

  • 这是正确的答案,因为问题在于捆绑程序创建的依赖关系图,而与node_modules文件夹无关。 (4认同)

Mar*_*len 7

只需重新启动捆绑器 - 无需删除 Node Modules 文件夹

我在 Linux Mint 上使用 VS Code 和 Android Studio 模拟器添加和使用 react-native-elements 时遇到了这个问题

在 VS Code 中,我有一个终端通过“npm start”命令运行带有 Metro Bundler 的 Expo。在文件夹中安装 react-native-elements(使用“npm install --save react-native-elements”)并将导入添加到 .js 文件中后,我得到了“但是,这个包本身指定了一个主模块字段无法解决”错误

就我而言,这只是在终端会话中使用 ^C 来停止 Metro 捆绑器,然后再次运行“npm start”。根本不需要删除节点模块文件夹。