javascript - Angular 14: crypto-js, CommonJS- eller AMD-beroenden kan orsaka optimeringsundantag


Jag arbetar på ett Angular 14-projekt. Jag har nedanstående kod för att generera några hashar.

import {Injectable} from '@angular/core';
import {enc, lib, SHA256} from 'crypto-js';

@Injectable({
  providedIn: 'root'
})
export class CryptoService {

  constructor() {
  }

  static generateCodeVerifier() {
    return this.base64Url(enc.Base64.stringify(lib.WordArray.random(32)));
  }

  static generateCodeChallenge() {
    const codeVerifier = sessionStorage.getItem('codeVerifier');
    return codeVerifier != null ? this.base64Url(SHA256(codeVerifier)) : '';
  }

  private static base64Url(str: any) {
    return str.toString()
    .replace(/=/g, '')
    .replace(/\+/g, '-')
    .replace(/\//g, '_');
  }
}

Jag får följande varning när jag paketerar appen,

/crypto.service.ts beror på 'crypto-js'. CommonJS- eller AMD-beroenden kan orsaka optimeringsavbrott. För mer information, se: https://angular.io/guide/build#configuring-commonjs-dependencies

Jag vet att jag kan ignorera detta genom att lägga till beroendet i angular.json under allowedCommonJsDependencies.

Men efter att ha läst mer om denna varning vill jag inte ignorera den.

Några förslag för att övervinna detta problem? Jag är också öppen för att använda andra bibliotek.

Relaterade artiklar