Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

697
Vistas
angular-cli build prod "El compilador de tiempo de ejecución no está cargado"

Hice ng build -prod y encontré un error extraño que es _zone_symbol__error :

 Error: Uncaught (in promise): Error: Runtime compiler is not loaded Error: Runtime compiler is not loaded at d (http://localhost:4200/polyfills.cd321326a3dfc08ceb46.bund

No estoy usando el compilador manualmente en mi aplicación. Y lo más raro es que el error parece provenir de los polyfills. Como puedo resolver esto?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

En mi caso, funciona para deshabilitar la compilación anticipada para la compilación

 ng build -prod --aot=false

De esta manera, la fuente todavía está empaquetada y fea y se incluye el compilador Just-in-Time.

El archivo main.bundle js es más pequeño que cuando se utiliza una compilación aot, pero el archivo vendor.bundle js aumenta aproximadamente 1,5 MB.

Editar 2018-07-11

Parece que hay dos casos:

1) Si su proyecto crea intencionalmente verdaderos componentes dinámicos, actualmente la única forma de incluir el compilador JIT parece deshabilitar AOT para la compilación de producción. Ver https://github.com/angular/angular/issues/11780 para una discusión

2) Si su proyecto no necesita crear componentes dinámicamente y no sabe por qué ocurre el error, deshabilitar AOT puede ser una solución , pero tenga cuidado con los inconvenientes. Sin AOT, tiene archivos de mayor tamaño y el usuario tarda más en comenzar con su aplicación. En este caso, puede ser más apropiado investigar por qué se hace referencia al compilador JIT en la compilación de producción.

Hay algunas discusiones SO ( AngularCli y AOT: ERROR Error: el compilador de tiempo de ejecución no está cargado ,solución de problemas "El compilador de tiempo de ejecución no está cargado" ) en torno a las cuales sugieren que la carga diferida de un módulo de terceros que usa 'COMPILER_PROVIDERS' puede ser el motivo de la error. Sin embargo, al momento de escribir no tienen una respuesta aceptada.

Para la descripción de otra trampa al usar módulos de carga diferida, vea la respuesta de Alexei en este hilo

about 4 years ago · Santiago Trujillo Denunciar

0

Nigromancia... Recibí el mismo error sin un uso explícito del compilador, por lo que me tomó un tiempo entender lo que estaba pasando.

Al realizar la carga diferida de algunos módulos, AOT parece tener problemas para determinar cuáles son los módulos necesarios , como se indica en este hilo . El resultado es que la compilación final no incluirá esos módulos y, cuando se necesiten, la aplicación intentará compilarlos sobre la marcha y fallará porque el compilador no está disponible.

La solución se proporciona aquí y para mí funcionó así:

 export function getSomeModule() { return SomeModule; } export const routes: Routes = [ // some routes here { path: "some", loadChildren: "./some/some.module#SomeModule" } ];

Entonces, se indica la ruta al módulo y también AOT conocerá SomeModule a través de la función getSomeModule (que no se usa en el código, pero ayuda a AOT a incluir el módulo).

about 4 years ago · Santiago Trujillo Denunciar

0

Esto sucede en @angular/cli@1.0.0-rc.2 cuando se realiza una compilación de producción ( ng build -prod ) mientras se usa la clase de compiler en su código.

Para reemplazar el compiler , querrá usar la "creación dinámica de componentes". Ver este SO:

  • ¿Cómo puedo usar/crear una plantilla dinámica para compilar un componente dinámico con Angular 2.0?

.


Además, compruebe si está importando polyfills.ts

Pude deshacerme de esto comparando mi proyecto @angular/cli@1.0.0-rc2 con un proyecto CLI recién creado y noté que polyfills.ts no se importó en ningún lugar excepto en .angular-cli.json

Por ejemplo, estaba importando polyfills.ts en main.ts

 import 'polyfills.ts'; // Remove this line import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } platformBrowserDynamic().bootstrapModule(AppModule);

Polyfill.ts solo necesita estar en .angular-cli.json aquí:

 ... "index": "index.html", "main": "main.ts", "polyfills": "polyfills.ts", "test": "test.ts", "tsconfig": "tsconfig.app.json", ...

Duplicar:

  • EXCEPCIÓN: el compilador de tiempo de ejecución no está cargado
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda