Recientemente actualicé a Angular v9 y recibo el siguiente error:
SyntaxError no capturado: el código de modo estricto puede no incluir una declaración with
Esto está ocurriendo en el siguiente archivo:
./node_modules/@angular/animations/__ivy_ngcc__/fesm2015/animations.js
Este es un archivo Angular v9 según los comentarios en el archivo:
/** * @license Angular v9.0.0 * (c) 2010-2020 Google LLC. https://angular.io/ *Licencia: MIT*/
Esto está ocurriendo aquí, con la declaración with :
module.exports = { Window_run: function _run(code, file) { if (file) code += '\n//@ sourceURL=' + file; with(this) eval(code); },Hay un comentario encima de esta línea:
/* Domino usa funciones de modo descuidado (en particular,
with) para algunas * cosas menores. Este archivo encapsula todo el descuido; cada * otro módulo debe ser estricto. // jshint estricto: falso // jshint malvado: verdadero // jshint -W085 */
Eliminé esta línea export { renderModule, renderModuleFactory } from '@angular/platform-server'; como se sugiere aquí y aquí, pero el problema ocurre solo cuando agrego ServerModule a la matriz de importaciones
@NgModule({ imports: [/*AppModule,*/ ServerModule], // bootstrap: [AppComponent], }) export class AppServerModule {} // export { renderModule, renderModuleFactory } from '@angular/platform-server'; al eliminar ServerModule la compilación se ejecutó correctamente
Estaba buscando la solución a un problema similar. Actualizar a Angular 9 rompió mi aplicación. Después de mucho ensayo y error, esto me ayudó .
Simplemente comente o elimine la siguiente línea de main.ts (agregada por el proceso de actualización):
export { renderModule, renderModuleFactory } from '@angular/platform-server';