AWS Amplify and React - 找不到模块:无法解析“@aws-amplify/analytics”

Posted

技术标签:

【中文标题】AWS Amplify and React - 找不到模块:无法解析“@aws-amplify/analytics”【英文标题】:AWS Amplify & React - Module not found: Can't resolve '@aws-amplify/analytics' 【发布时间】:2020-03-08 03:23:04 【问题描述】:

我正在尝试将登录功能添加到我正在使用 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... 是不是我在安装时弄得一团糟?

【问题讨论】:

【参考方案1】:

我遇到了类似的错误

编译失败。

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

当关注Amplify tutorial时。

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

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

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

【讨论】:

对于那些想知道为什么会有多个 @aws-amplify/* 包的人,Amplify 正在转向更加模块化的结构。在此处查看他们的 wiki 文章:github.com/aws-amplify/amplify-js/wiki/Amplify-modularization。 AWS 并不孤单,因为有模块化的趋势,Expo 等其他公司也在转向模块化导入。【参考方案2】:

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

    npm i aws-amplify 像这样导入:
import Amplify,  Auth  from 'aws-amplify'

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

【讨论】:

【参考方案3】:

我会在尝试添加放大之前恢复到您以前的版本(旧的 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);

【讨论】:

以上是关于AWS Amplify and React - 找不到模块:无法解析“@aws-amplify/analytics”的主要内容,如果未能解决你的问题,请参考以下文章

aws-amplify-react Connect 首先返回未定义的数据

使用 Amplify 集成构建 AWS Amplify React 应用程序时总是缺少 aws-exports.js

AuthError - 错误:未正确配置 Amplify / AWS cognito,React JS

无法解析模块“@aws-amplify/ui-react/styles.css”的路径

为 React 自定义 AWS Amplify 身份验证 UI

在 React 中使用 AWS Amplify Appsync 上传图像