我是本机反应的新手,但是发现了一个对我完全没有意义的错误。
我正在尝试添加日历库: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不是目录。
有帮助吗?
答案 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代码,也请关闭它。
关闭所有本地主机服务器端口,如果可能,请重新启动系统。 这可能会解决问题。