Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.3K
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório

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 Relatório

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 Relatório

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 Relatório

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 Relatório

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 Relatório

0

Solo cambia la importación:

desde:

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

Para:

import { BehaviorSubject } from 'rxjs';

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda