Haste 模块命名冲突:将本机应用程序与 AWS 服务反应(放大项目)
Posted
技术标签:
【中文标题】Haste 模块命名冲突:将本机应用程序与 AWS 服务反应(放大项目)【英文标题】:Haste module naming collision: react native app with AWS Service (Amplify Project) 【发布时间】:2019-11-13 13:18:14 【问题描述】:我已经开始使用 react native 项目,之前是在本地代码中。 我想添加 Amazon Lex,所以按照链接中的以下步骤进行操作
https://aws-amplify.github.io/docs/js/interactions
下面是我的 App.js 文件
import React from 'react';
import StyleSheet, Text, View from 'react-native';
export default function App()
return (
<View style=styles.container>
<Text>Open up App.js to start working on your app!</Text>
</View>
);
const styles = StyleSheet.create(
container:
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
,
);
我刚刚为 LEX 设置了放大库并添加了交互,但是当我尝试运行应用程序时开始出现错误。在添加之前工作正常......一旦创建了 Amplify 文件夹并开始后端错误......
(node:26180) UnhandledPromiseRejectionWarning: 错误: jest-haste-map: 急速模块命名冲突:重复的模块名称: myamplifyproject_cfnlambda_87887b9a 路径: C:\Users\temp\Desktop\myAmplifyProject\amplify\backend\interactions\lex900662fd\src\package.json 与 C:\Users\temp\Desktop\myAmplifyProject\amplify#current-cloud-backend\interactions\lex900662fd\src\package.json
此错误是由
hasteImpl
返回相同的名称引起的 不同的文件。 在 setModule (C:\Users\temp\Desktop\myAmplifyProject\node_modules\jest-haste-map\build\index.js:569:17) 在 workerReply (C:\Users\temp\Desktop\myAmplifyProject\node_modules\jest-haste-map\build\index.js:641:9) 在 processTicksAndRejections (internal/process/task_queues.js:93:5) 在异步 Promise.all(索引 30)错误 18:24(节点:26180)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这 错误源于在异步函数内部抛出 没有 catch 块,或拒绝未处理的承诺 使用 .catch()。 (拒绝 ID:2)(节点:26180)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。在 未来,未处理的承诺拒绝将终止 具有非零退出代码的 Node.js 进程。 (节点:26180) UnhandledPromiseRejectionWarning: 错误: jest-haste-map: Haste 模块 命名冲突:重复的模块名称: myamplifyproject_cfnlambda_87887b9a 路径: C:\Users\temp\Desktop\myAmplifyProject\amplify\backend\interactions\lex900662fd\src\package.json 与 C:\Users\temp\Desktop\myAmplifyProject\amplify#current-cloud-backend\interactions\lex900662fd\src\package.json此错误是由
hasteImpl
返回相同的名称引起的 不同的文件。 在 setModule (C:\Users\temp\Desktop\myAmplifyProject\node_modules\jest-haste-map\build\index.js:569:17) 在 workerReply (C:\Users\temp\Desktop\myAmplifyProject\node_modules\jest-haste-map\build\index.js:641:9) 在 processTicksAndRejections (internal/process/task_queues.js:93:5) 在 async Promise.all (index 30) (node:26180) UnhandledPromiseRejectionWarning: 未处理的承诺拒绝。这 错误源于在异步函数内部抛出 没有 catch 块,或拒绝未处理的承诺 使用 .catch()。 (拒绝编号:3)
我已经使用了所有最新版本的 react-native。
我尝试了以下解决方案但无法正常工作how to make react native packager ignore certain directories
我只是按照步骤......我哪里出错了......错过了任何东西...... 请帮忙……这是我第一个反应原生的应用程序……我真的迷路了
【问题讨论】:
【参考方案1】:经过许多不眠之夜和测试不同的解决方案,我终于能够通过..我使用最新的 react-native > 0.59(我猜是 0.61) 我的应用程序已经在根目录创建了 metro.config.js 文件,必须编辑相同的文件。
const blacklist = require('metro-config/src/defaults/blacklist'); // on top
resolver:
blacklistRE: blacklist([/#current-cloud-backend\/.*/]) //add within module export
我呼吸新鲜空气...现在一切正常...
请不要创建新的 metro.config.js 或 rn-cli.config.js。使用 #current-cloud-backend 而不是 backend 文件夹编辑当前的 metro.config.js。这个非常重要。 后端将被忽略....
这将对将来的某人有所帮助....因为给出的任何解决方案都不起作用....对于最新的本机反应。
【讨论】:
感谢您的解决方案。我之前的解决方案是从 #current-cloud-backend 文件夹中删除 package.json 文件,但它非常手动且容易出错。 编辑 metro.config.js 不断导致“无法解析 crypto-js 中的加密”错误以上是关于Haste 模块命名冲突:将本机应用程序与 AWS 服务反应(放大项目)的主要内容,如果未能解决你的问题,请参考以下文章
错误:jest-haste-map:Haste 模块命名冲突:
如何修复 React Native 错误“jest-haste-map:Haste 模块命名冲突”?
Haste模块映射中不存在模块`@babel / runtime / helpers / interopRequireDefault`