react-native - 捆绑失败:错误:解析模块“metro/src/lib/bundle-modules/HMRClient”时
问题描述
我创建了一个名为 Metro 的新项目。当我运行它时,这个错误出现在我的 cli nodejs 上:
错误:捆绑失败:错误:解析模块metro/src/lib/bundle-modules/HMRClient
时,找到了 Haste 包metro
。但是在src/lib/bundle-modules/HMRClient
包中找不到该模块。事实上,这些文件都不存在:
D:\programming\react native\metro\src\lib\bundle-modules\HMRClient(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
D:\programming\react native\metro\src\lib\bundle-modules\HMRClient\index(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
at resolveHasteName (D:\programming\react native\metro\node_modules\metro-resolver\src\resolve.js:236:9)
at Object.resolve (D:\programming\react native\metro\node_modules\metro-resolver\src\resolve.js:103:20)
at ModuleResolver.resolveDependency (D:\programming\react native\metro\node_modules\metro\src\node-haste\DependencyGraph\ModuleResolution.js:143:31)
at ResolutionRequest.resolveDependency (D:\programming\react native\metro\node_modules\metro\src\node-haste\DependencyGraph\ResolutionRequest.js:52:18)
at DependencyGraph.resolveDependency (D:\programming\react native\metro\node_modules\metro\src\node-haste\DependencyGraph.js:283:16)
at Object.resolve (D:\programming\react native\metro\node_modules\metro\src\lib\transformHelpers.js:261:42)
at dependencies.map.result (D:\programming\react native\metro\node_modules\metro\src\DeltaBundler\traverseDependencies.js:399:31)
at Array.map (<anonymous>)
at resolveDependencies (D:\programming\react native\metro\node_modules\metro\src\DeltaBundler\traverseDependencies.js:396:18)
at D:\programming\react native\metro\node_modules\metro\src\DeltaBundler\traverseDependencies.js:269:33
我的本机版本是0.59.8
解决方案
我陷入了同样的问题,所以我所做的是:
- 在路径中找到文件:
node_modules/react-native/Libraries/Utilities/HMRClient.js
- 换行:
const MetroHMRClient = require('metro/src/lib/bundle-modules/HMRClient');
- 至:
const MetroHMRClient = require('../../../@react-native-community/cli/node_modules/metro/src/lib/bundle-modules/HMRClient');
是唯一对我有用的东西,唯一的问题是,如果您重新安装 de node_modules,您将需要再次更换该行。因为我将此脚本添加到我的 package.json 中:
"postinstall": "sed -i '' \"s#metro#../../../@react-native-community/cli/node_modules/metro#g\" ./node_modules/react-native/Libraries/Utilities/HMRClient.js"
上面的脚本负责每次新的 npm install 后的替换
推荐阅读
- javascript - 试图将一串javascript文件数据转换为我可以显示的美化代码
网站上的html标签
- c# - 无重复的随机数生成器
- python-3.x - 使用 SPACY 查找匹配的公司名称
- powershell - Powershell get-adcomputer + get-wmi-object
- javascript - 当用户从 React 的下拉列表中选择一个选项时如何启用另一个输入字段
- html - 如何在 Divi Contact Form 模块提交按钮中添加 span 标签
- c# - C# Excel 互操作无法设置 PageSetup 类的 PaperSize 属性
- r - R中的3d qqplots
- ios - 分界线在前景上太长了
- javascript - Angular 8 FormControl禁用不发送到子组件