Estoy tratando de actualizar mi aplicación Angular 9 a la versión Angular 10, pero recibo la siguiente advertencia después de la actualización
WARNING in calendar.reducer.ts depends on lodash/keys. CommonJS or AMD dependencies can cause optimization bailouts. Agregué la siguiente línea a mi archivo angular.json pero el problema no se resolvió
"allowedCommonJsDependencies": ["lodash"]¿Cómo puedo solucionar el problema anterior?
El paquete lodash en sí mismo no es un módulo ECMAScript y, por lo tanto, genera la advertencia. Hay varias formas de solucionar esto:
Algunas bibliotecas ofrecen compilaciones moduladas ES. En el caso de lodash , puede reemplazarlo con lodash-es .
Ejecute npm install --save lodash-es .
Ahora reemplace todas las importaciones de lodash con lodash-es .
También asegúrese de importar la biblioteca con declaraciones de importación ES:
import { keys } from 'lodash-es'; Si no hay una compilación modulada de ES disponible para su biblioteca, o si por alguna razón no le importa, puede permitir dependencias específicas de CommonJS en el archivo angular.json :
"architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "allowedCommonJsDependencies": ["lodash"] } } }Desde la versión 10.0.1 de Angular CLI, puede usar globs en
allowedCommonJsDependencies. Esto significa que si pasalodash, las rutas secundarias (por ejemplolodash/keys) también estarán permitidas.
Referencia de documentos: https://angular.io/guide/build#configuring-commonjs-dependencies