Angular12集成AWS-Amplify实现谷歌注册时的编译报错问题
问题解决方案
一、修复TS2344类型报错
该报错是AWS Amplify v4.3.0的Storage模块类型定义与TypeScript 4.3.5存在兼容性问题,可选修复方案如下:
- 方案1(快速修复):在项目根目录的
tsconfig.json的compilerOptions节点下添加配置:
"skipLibCheck": true
该配置会跳过所有node_modules下的类型定义检查,不会影响业务代码的类型校验,开发、生产环境均生效。
- 方案2(精准修复,无需跳过全局库检查):如果你项目中未使用Amplify的Storage存储服务,可以仅引入需要的模块,比如只用到Cognito认证的话,修改main.ts的代码为:
import Amplify from "@aws-amplify/core"; import Auth from "@aws-amplify/auth"; import aws_exports from "./aws-exports"; Amplify.configure(aws_exports); // 按需注册需要的模块,未引入Storage就不会触发相关类型报错 Amplify.register(Auth);
- 方案3:将
@aws-amplify/storage版本锁定到v4.4.0,该版本修复了上述类型定义问题,执行命令安装即可:npm i @aws-amplify/storage@4.4.0
二、修复CommonJS依赖警告
这两个警告是Angular默认对CommonJS格式依赖的优化提示,不影响功能运行,要消除警告可以修改项目根目录的angular.json,找到projects -> 你的项目名 -> architect -> build -> options节点,添加allowedCommonJsDependencies配置:
"allowedCommonJsDependencies": [ "crypto-js", "isomorphic-unfetch" ]
修改后重新启动项目即可消除警告。
内容的提问来源于stack exchange,提问作者Abdul Moeez
相关产品推荐
相关产品推荐

