Cuando actualicé Angular de 7 a Angular 8, obtuve un error para los módulos de carga lenta
He probado las opciones, que están en la guía de actualización angular
Hizo los siguientes cambios:
Antes
loadChildren: '../feature/path/sample- tage.module#SameTagModule'Después
loadChildren: () => import('../feature/path/sample- tags.module').then(m => m.CreateLinksModule)error TS1323: la importación dinámica solo se admite cuando el indicador '--module' es 'commonjs' o 'esNext'.
Solo agregando a la respuesta de @Tony, es posible que también deba hacer lo mismo (cambiar a "módulo": "esnext") en tsconfig.app.json. En mi caso, tsconfig.json ya estaba usando esnext como módulo, pero tsconfig.app.json todavía estaba usando es2015 y eso causó este error.
Está utilizando la importación dinámica, por lo que debe cambiar su tsconfig.json de esta manera para orientar su código al módulo esnext
{ "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "module": "esnext", // add this line "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, "importHelpers": true, "target": "es2015", "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] } }También asegúrese de verificar que tsconfig.app.json no tenga un módulo y una configuración de destino similar a esta
{ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/app", "types": [] }, "include": [ "src/**/*.ts" ], "exclude": [ "src/test.ts", "src/**/*.spec.ts" ] }Solo quiero agregar mi experiencia a la respuesta de @Tony. Después de cambiar tsconfig.json , todavía mostraba un error (subrayado rojo). Solo después de volver a abrir el editor (utilicé VSCode) vi desaparecer el subrayado rojo.
Creo que la forma correcta de hacer esto es ajustar tsconfig.app.json en lugar de tsconfig.json .
tsconfig.app.json
{ "extends": "../tsconfig.json", "compilerOptions": { "outDir": "../out-tsc/app", "baseUrl": "./", "module": "esnext", "types": [] }, "exclude": [ "test.ts", "**/*.spec.ts" ] } tsconfig.app.json es el archivo de configuración de TypeScript específico de la aplicación que se encuentra debajo de la raíz del espacio de trabajo de Angular. El tsconfig.app.json existe para que si está creando un espacio de trabajo Angular que tiene varias aplicaciones, puede ajustar la configuración de Typescript por separado para cada aplicación sin tener que escribir propiedades de configuración redundantes que se superponen entre las aplicaciones (de ahí la propiedad extends ).
Técnicamente, no necesita tsconfig.app.json en absoluto. Si lo borra, tendrá que colocar el "module": "esnext" en tsconfig.json . Si lo mantiene allí, tendrá prioridad sobre tsconfig.json , por lo que solo necesita agregar la línea "module":"esnext" en tsconfig.app.json .
Resuelvo este error siguiendo los pasos del paso 1: "módulo": "es2015" a "módulo": "AMD" en tsconfig.json
paso 2: cree un nuevo archivo tsconfig.app.json en el directorio raíz de la aplicación, copie el código de Tony Ngo y péguelo, entonces este problema se resolverá.
Resolví este problema solo agregando "include": ["src/**/*.ts"] en mi archivo tsconfig.app.json.
Mi versión angular es 8.2 y la arreglé simplemente cambiando "módulo": "es2015" a "módulo": "es2020"
Si está utilizando el marco Ionic y VSCode, ¡necesita actualizar su versión IDE de Typescript (> 4)!
Simplemente actualice la versión angular dando el siguiente comando. Los errores desaparecerán.
ng update @angular/core @angular/cli --next
Después de eso, cambie el destino y el módulo en el archivo tsconfig.json
"target": "esnext", "module": "esnext",Tuve este problema con angular 13, noté que algunos servicios tenían este problema mientras que otros no, la diferencia era
@import { Injectable } from '@angular/core/';mientras que esto se compiló perfectamente sin problemas en angular 9, pero la solución fue eliminar / al final para convertirse en '
@import { Injectable } from '@angular/core';