Amplify JS 不再作为节点模块工作

问题描述 投票:0回答:1

我创建了一个在 Web 项目和 React-Native 项目中使用的模块,该项目工作正常,直到我最近更新了所有依赖项以使用 Amplify v6

我真的不想在多个代码库中重复样板代码,因为我的模块中的很多代码都可以变得更加清晰。

本质上,我有一个网络应用程序,它将具有一些管理功能,使用 amplify graphql 和 cognito。

我还有一个 React Native 应用程序,它为用户使用相同的放大项目(cognito、graphql、存储等)

为了避免重复功能(例如所有身份验证实现/API 查询),并能够拥有本机应用程序的 Web 版本以防万一,我创建了一个充满辅助功能的私有节点模块。

然后,我将我的模块作为依赖项包含在我的网络反应应用程序和反应本机应用程序中,这对我来说完全有意义。

这一切都工作正常,直到 amplify-js v6 更新,现在我的网络应用程序不断给我 AuthUserPoolException:Auth UserPool 未配置。错误。

讽刺的是,它似乎仍然可以在 React Native 中工作,但我担心它很快就会崩溃,而且似乎没有理由。

还有人用这种方式放大吗?

任何帮助将不胜感激。

javascript reactjs react-native aws-amplify amplifyjs
1个回答
0
投票

好的,我找到了解决方案。

到目前为止,我还不太确定我的模块是如何工作的,但我们就这样吧。

模块本身需要连接才能放大,但由于某种原因,到目前为止,我从未需要配置它。

我猜是因为本机应用程序和网络应用程序调用

Amplify.configure
,也许这会自行传递下去。

今天我给模块本身添加了一个功能:

import amplifyconfig from './amplifyconfiguration.json';

const setupCommonAmplifyModule = (): void => {
  Amplify.configure(amplifyconfig);
  const amplifyConfig = Amplify.getConfig();
  console.log('COMMON MODULE AMPLIFY SETUP: ', amplifyConfig);
};

然后从索引文件中的网络应用程序中我不再费心调用

Amplify.configure
我只是调用:

import {setupCommonAmplifyModule} from '@me/my-module'

setupCommonAmplifyModule()

现在我所有与放大相关的模块功能似乎都再次工作了。

希望这可以帮助任何想要将放大应用程序功能转移到通用模块中以便跨多个应用程序使用的人。

© www.soinside.com 2019 - 2024. All rights reserved.