• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

288
Vistas
La 'PlatformLocation' inyectable debe compilarse con el compilador JIT, pero '@angular/compiler' no está disponible

Mi aplicación Angular se sirve a través de Node 16.13.0. Después de actualizar a Angular 13, recibo el siguiente error:

La compilación JIT falló para el archivo inyectable [class PlatformLocation]: ///Users/btaylor/work/angular-apps/dz-outages-ui/node_modules/@angular/core/fesm2015/core.mjs:4058 lanzar nuevo error (mensaje) ; ^

Error: la 'PlatformLocation' inyectable debe compilarse con el compilador JIT, pero '@angular/compiler' no está disponible.

El inyectable es parte de una biblioteca que ha sido compilada parcialmente. Sin embargo, Angular Linker no ha procesado la biblioteca de modo que la compilación JIT se use como reserva.

Idealmente, la biblioteca se procesa utilizando Angular Linker para compilar completamente AOT. Alternativamente, el compilador JIT debe cargarse arrancando usando '@angular/platform-browser-dynamic' o '@angular/platform-server', o proporcionar manualmente al compilador 'importar "@angular/compiler";' antes del arranque. en getCompilerFacade (archivo:///Users/btaylor/work/angular-apps/dz-outages-ui/node_modules/@angular/core/fesm2015/core.mjs:4058:15) en Module.ɵɵngDeclareFactory (archivo:// /Users/btaylor/work/angular-apps/dz-outages-ui/node_modules/@angular/core/fesm2015/core.mjs:32999:22) en archivo:///Users/btaylor/work/angular-apps/ dz-outages-ui/node_modules/@angular/common/fesm2015/common.mjs:90:28 en ModuleJob.run (node:internal/modules/esm/module_job:185:25) en async Promise.all (índice 0) en async ESMLoader.import (node:internal/modules/esm/loader:281:24) en async loadESM (node:internal/process/esm_loader:88:5) en async handleMainPromise (node:internal/modules/run_main:65: 12)

He probado numerosas soluciones, como: Error de compilación de Angular JIT: '@angular/compiler' no cargado

Actualmente, tengo "type": "module" en mi paquete.json

He actualizado mi comando de postinstalación a: ngcc --properties es2020 browser module main --first-only --create-ivy-entry-points

También agregué import '@angular/compiler'; a mi archivo main.ts

El proyecto se compilará, pero no se ejecutará a través de Node.

over 3 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Creo que he encontrado la solución (suponiendo que esté usando broma como corredor de prueba). En el archivo test-setup.ts , mi proyecto todavía usaba la importación obsoleta para jest-preset-angular. En lugar de import 'jest-preset-angular'; intenta usar import 'jest-preset-angular/setup-jest'; .

Esto solucionó el problema para mí.

over 3 years ago · Santiago Trujillo Denunciar

0

Parece que angular 13 convirtió babel-loader un requisito obligatorio para vincular paquetes nativos de Ivy. https://github.com/angular/angular/issues/44026#issuecomment-974137408 - y el problema ocurre porque las bibliotecas principales de Angular ya están compiladas con el formato del paquete Ivy.

Todavía no he realizado el cambio en mis propios proyectos, pero el procesamiento de archivos .mjs con babel y un enlazador especial debería ser suficiente.

 import { dynamicImport } from 'tsimportlib'; /** * Webpack configuration * * See: http://webpack.github.io/docs/configuration.html#cli */ export default async (options: IWebpackOptions) => { const linkerPlugin = await dynamicImport('@angular/compiler-cli/linker/babel', module); const config: any = { module: { rules: [{ test: /\.mjs$/, loader: 'babel-loader', options: { compact: false, plugins: [linkerPlugin.default], }, resolve: { fullySpecified: false } } } } }

Haré más actualizaciones en esta publicación una vez que pueda probarlo yo mismo.

over 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda