节点模块文件中的Amazon-Cognito-identity-js冲突

问题描述

我正在运行带有角度,放大和认知功能的应用程序。当我执行ng serve运行应用程序时,出现此错误。 我试过删除所有节点模块package-lock.json但它并没有改变 因此,我想知道在进行ng服务时应如何更改才能使其正常工作。

ERROR in node_modules/amazon-cognito-identity-js/index.d.ts:1:1 
- error TS6200: DeFinitions of the following identifiers conflict with 
those in another file: NodeCallback,ClientMetadata,AuthenticationDetails,CognitoUser,CognitoUserAttribute,CognitoUserPool,CognitoUserSession,CognitoAccesstoken,CognitoIdToken,CognitoRefreshToken,CookieStorage
declare module 'amazon-cognito-identity-js' {

node_modules/aws-amplify/node_modules/amazon-cognito-identity-js/index.d.ts:1:1
    1 declare module 'amazon-cognito-identity-js' {
    Conflicts are in this file.

解决方法

amazon-cognito-identity-js 不是必需的,也是 aws-amplify 的一部分。

My modules:
    "@angular/animations": "~11.0.5","@angular/cdk": "^11.0.3","@angular/common": "~11.0.5","@angular/compiler": "~11.0.5","@angular/core": "~11.0.5","@angular/forms": "~11.0.5","@angular/material": "^11.0.3","@angular/platform-browser": "~11.0.5","@angular/platform-browser-dynamic": "~11.0.5","@angular/router": "~11.0.5","@aws-amplify/ui-angular": "^0.4.17-unstable.1","@types/graphql": "^14.5.0","angular-gridster2": "^10.1.7","aws-amplify": "^3.3.14-unstable.1","crypto-js": "^4.0.0","ini": "^2.0.0","linqts": "^1.14.3","ng-dynamic-component": "^8.0.0","node-fetch": "^2.6.1","rxjs": "~6.6.0","tslib": "^2.0.0","zone.js": "~0.10.2"

write in polyfilss.ts:
(window as any).global = window;

directly into package.json:
  "browser": {
    "crypto": false
  }

app-module aws-imports:
import Amplify from 'aws-amplify';
import {AmplifyUIAngularModule} from '@aws-amplify/ui-angular';
import awsmobile from '../aws-exports.js';

Amplify.configure(awsmobile);

在 .../build/options 下的 angular.json 中:

        "allowedCommonJsDependencies": [
          "crypto-js","@aws-sdk/eventstream-marshaller","buffer","js-cookie","@aws-crypto","zen-observable","@aws-sdk/util-utf8-node","@aws-crypto/sha256-js","@aws-crypto/crc32","@aws-sdk/util-buffer-from","@aws-sdk/smithy-client","@aws-sdk/middleware-serde","@aws-sdk/middleware-user-agent","@aws-sdk/middleware-retry","@aws-sdk/middleware-signing","@aws-sdk/middleware-content-length","@aws-sdk/middleware-host-header","@aws-sdk/config-resolver","@aws-sdk/s3-request-presigner","@aws-sdk/util-format-url","@aws-sdk/util-create-request","@aws-sdk/property-provider","axios","@aws-sdk/fetch-http-handler","@aws-sdk/protocol-http","@aws-sdk/querystring-builder","@aws-sdk/util-utf8-browser","@aws-sdk/url-parser-browser","@aws-crypto/sha256-browser","@aws-sdk/url-parser-node","@aws-sdk/util-uri-escape","@aws-sdk/middleware-sdk-s3","@aws-sdk/middleware-bucket-endpoint","@aws-sdk/querystring-parser","@aws-sdk/middleware-apply-body-checksum","@aws-sdk/middleware-ssec","@aws-sdk/middleware-expect-continue","fast-xml-parser","@aws-sdk/xml-builder","@aws-sdk/md5-js","@aws-sdk/hash-blob-browser","@aws-sdk/eventstream-serde-browser","@aws-sdk/middleware-location-constraint","uuid","@aws-sdk/credential-provider-cognito-identity","@aws-sdk/eventstream-serde-config-resolver","@aws-sdk/client-s3","@aws-sdk/client-pinpoint","ulid","zen-push","lodash","@aws-amplify/core","@aws-amplify/analytics","@aws-amplify/ui-components","isomorphic-unfetch"
        ]

在 tsconfig.json 中作为 compilerOptions 的一部分:

"paths": {
  "crypto": [
    "../../node_modules/crypto-js"
  ]
}

那么就不会再有警告或错误了。