6

我正在尝试将登录功能添加到我正在使用 Amplify 和 AWS Cognito 构建的 React 应用程序中,但是当我在 Login.js 文件中添加以下行时:

Import {Auth} from "aws-amplify-react";

并尝试编译,我收到以下错误:

Failed to compile.

./node_modules/aws-amplify-react/lib-esm/Analytics/trackLifecycle.js
Module not found: Can't resolve '@aws-amplify/analytics' in 'my_react_path/node_modules/aws-amplify-react/lib-esm/Analytics'

我尝试使用 homebrew 和 npm 安装 Amplify,但我无法解决这个问题,有什么提示吗?

编辑:

最初我有:

Import {Auth} from "aws-amplify";

但是编译器无法解析aws-amplify,我只能在node_modules文件夹中找到aws-amplify-react,所以我改变了它。

但是,在第 39 行的“node_modules/aws-amplify-react/lib-esm/Analytics/trackLifecycle.js”中:

import Analytics from '@aws-amplify/analytics';

问题是它找不到aws-amplify ...我在安装时是否弄得一团糟?

4

3 回答 3

3

我收到类似的错误

编译失败。

./node_modules/aws-amplify-react/lib-esm/Analytics/trackLifecycle.js 未找到模块:无法解析“/Users/myuser/myproject/node_modules/aws-amplify-”中的“@aws-amplify/analytics”反应/lib-esm/分析'

遵循Amplify 教程时。

我找到的解决方法是执行:

npm i -S @aws-amplify/analytics @aws-amplify/interactions @aws-amplify/storage @aws-amplify/ui @aws-amplify/xr aws-amplify

显然,我很想知道如何避免所有这些额外的库。

于 2019-12-22T17:51:56.887 回答
2

假设您在此阶段不担心包大小,可能您最简单的做法是完全删除您的 node_modules,然后:

  1. npm i aws-amplify
  2. 像这样导入:
import Amplify, { Auth } from 'aws-amplify'

如果您计划使用 OOTB UI 组件,则只需安装/导入 aws-amplify-react。如果您正在制作自己的用于登录的 UI 组件,则在此阶段不需要该包。

于 2019-11-27T21:40:28.623 回答
0

在尝试添加放大(旧 package.json 和 node_modules)之前,我会恢复到您以前的版本

按照这个演练:https ://docs.amplify.aws/start/getting-started/installation/q/integration/react-native

当您进入“添加身份验证”步骤时,跳过它并直接进入“下一步”->“身份验证”,然后按照直到您到达:

import Amplify, {Auth} from 'aws-amplify';
import config from './aws-exports';
Amplify.configure(config);
于 2020-10-21T17:43:19.297 回答