Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.3K
Views
Actualizar a Angular 10: corregir las dependencias de CommonJS o AMD puede provocar rescates de optimización

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

 rxjs\BehaviorSubject.js depends on rxjs-compat/BehaviorSubject

¿Algúna idea de cómo arreglar esto?

over 4 years ago · Santiago Trujillo
9 answers
Answer question

0

Se recomienda que evite depender de los módulos CommonJS en sus aplicaciones Angular. Dependiendo de los módulos de CommonJS, puede evitar que los empaquetadores y los minificadores optimicen su aplicación, lo que da como resultado tamaños de paquete más grandes. En cambio, se recomienda que use módulos ECMAScript en toda su aplicación. Aún así, no le importa el tamaño de su paquete,

Para deshabilitar estas advertencias, puede agregar el nombre del módulo allowedCommonJsDependencies en las opciones de compilación ubicadas en el archivo angular.json .

 "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "allowedCommonJsDependencies": [ "rxjs-compat" ] ... } ... },

Fuente

over 4 years ago · Santiago Trujillo Report

0

Cuando usa una dependencia que está empaquetada con CommonJS, puede resultar en aplicaciones más grandes y lentas

A partir de la versión 10, Angular ahora le advierte cuando su compilación incorpora uno de estos paquetes. Si ha comenzado a ver estas advertencias para sus dependencias, informe a su dependencia que preferiría un paquete de módulo ECMAScript (ESM).

Aquí hay una documentación oficial: configuración de dependencias de CommonJS

En su archivo angular.json , busque el objeto de compilación y agregue

PermitidoCommonJsDependencies

Como se muestra abajo -

 "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "allowedCommonJsDependencies": [ "rxjs-compat", ... few more commonjs dependencies ... ] ... } ... },
over 4 years ago · Santiago Trujillo Report

0

intente reemplazar rxjs imports rxjs/internal/operators con rxjs/operators .

ex:

 import { catchError, retry } from 'rxjs/internal/operators';

con

 import { catchError, retry } from 'rxjs/operators';
over 4 years ago · Santiago Trujillo Report

0

Para la biblioteca RXJS, puede realizar los siguientes cambios.

Para importaciones como 'rxjs/internal/<anything>' y 'rxjs/index' , reemplácelo solo con 'rxjs' .

Para importaciones como 'rxjs/internal/operators' , reemplácelo con 'rxjs/operators' , que se menciona en la respuesta de @Janardhan Burle.

O reemplace solo rxjs

over 4 years ago · Santiago Trujillo Report

0

Otro caso de esto es el problema del que se advierte durante la compilación con el uso de BehaviorSubject de rxjs cuando se usa el siguiente estilo de importación:

import { BehaviorSubject } from 'rxjs/BehaviorSubject';

Da como resultado el siguiente error:

Advertencia: my.service.ts depende de 'rxjs/BehaviorSubject'. Las dependencias de CommonJS o AMD pueden causar rescates de optimización.

Al importar desde el módulo raíz, la advertencia ya no está presente durante la compilación:

import { BehaviorSubject } from 'rxjs';

over 4 years ago · Santiago Trujillo Report

0

Tuve un problema similar (app.module.ts depende de 'ngx-google-places-autocomplete'), pero muchas respuestas no me ayudaron.

Entonces, si tiene x depende de y , simplemente agregue y en el archivo angular.json en "allowedCommonJsDependencies".

over 4 years ago · Santiago Trujillo Report

0

He variado un gran proyecto con importaciones en desuso 'rxjs' y creo este script para actualizar todas las importaciones en desuso

 $ python3.6 replace_imports.py PATH_TO_SRC_DIR

esta secuencia de comandos actualiza la importación como "rxjs\/(internal|Observable|Subject|ReplaySubject|Subscription|BehaviorSubject)" para importar { * } desde rxjs

también intente actualizar rxjs-compat

over 4 years ago · Santiago Trujillo Report

0

En mi caso (después de la actualización a TypeScript versión 3.9.7) flatMap está en desuso (de rxjs/operators ). Este es un alias para mergeMap , así que lo reemplacé:

import { flatMap } from 'rxjs/internal/operators';

para

import { mergeMap } from 'rxjs/operators';

over 4 years ago · Santiago Trujillo Report

0

Solo cambia la importación:

desde:

import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';

Para:

import { BehaviorSubject } from 'rxjs';

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!