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”的路径