反应本机,捆绑失败

时间:2018-06-27 17:05:58

标签: ios react-native npm

我是本机反应的新手,但是发现了一个对我完全没有意义的错误。

我正在尝试添加日历库:https://github.com/wix/react-native-calendars

我已经在package.json文件中包含了该库的依赖关系并运行

npm install

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

import { Calendar, CalendarList, Agenda } from 'react-native-calendars';

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

错误:捆绑失败:错误:尝试从文件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)
  • /Users/Alex/Documents/workspace/mobile/node_modules/xdate/src/xdate.js/index(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json) 在ResolutionRequest.resolveDependency(/Users/Alex/Documents/workspace/mobile/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:103:15) 在DependencyGraph.resolveDependency(/Users/Alex/Documents/workspace/mobile/node_modules/metro/src/node-haste/DependencyGraph.js:272:4579) 在Dependencies.map.relativePath(/Users/Alex/Documents/workspace/mobile/node_modules/metro/src/DeltaBundler/traverseDependencies.js:376:19) 在Array.map() 在resolveDependencies(/Users/Alex/Documents/workspace/mobile/node_modules/metro/src/DeltaBundler/traverseDependencies.js:374:16) 在/Users/Alex/Documents/workspace/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) 在/Users/Alex/Documents/workspace/mobile/node_modules/metro/src/DeltaBundler/traverseDependencies.js:297:473 在

但是我已经检查了目录,实际上/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不是目录。

有帮助吗?

6 个答案:

答案 0 :(得分:28)

如果您在打开打包程序的情况下尝试安装模块,通常会发生这种情况。

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

答案 1 :(得分:7)

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

答案 2 :(得分:1)

如果任何人有相同的问题,请删除不起作用的node_module。然后,您可以尝试删除所有的node_module,程序包锁定,并使用yarn安装node_module而不是npm。希望有帮助

答案 3 :(得分:1)

只需重新启动捆绑程序-无需删除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”。完全不需要删除节点模块文件夹。

答案 4 :(得分:0)

如果即使删除./node_modules文件夹并再次运行npm install后仍然出现错误,请尝试使用--update-binary标志(即npm install --update-binary)进行安装。这应该清除并重建计算机上以前构建的所有软件包。

答案 5 :(得分:0)

请不要删除节点模块文件夹。 捆绑器最少处理节点模块文件夹。

请关闭所有端子。如果使用VS代码,也请关闭它。

关闭所有本地主机服务器端口,如果可能,请重新启动系统。 这可能会解决问题。