Acabo de actualizar angular a la última 9.0.0-next.4 . No estoy usando el enrutamiento, pero de repente, después de actualizar, sigo viendo esta advertencia. ¿Cómo elimino esta advertencia?
ADVERTENCIA en
src/war/angular/src/app/app-routing.module.tses parte de la compilación de TypeScript pero no se usa. Agregue solo puntos de entrada a las propiedades 'archivos' o 'incluir' en su archivo tsconfig.
paquete.json
"dependencies": { "@angular/animations": "^9.0.0-next.4", "@angular/cdk": "^8.1.4", "@angular/common": "^9.0.0-next.4", "@angular/compiler": "^9.0.0-next.4", "@angular/core": "^9.0.0-next.4", "@angular/forms": "^9.0.0-next.4", "@angular/material": "^8.1.4", "@angular/platform-browser": "^9.0.0-next.4", "@angular/platform-browser-dynamic": "^9.0.0-next.4", "@angular/router": "^9.0.0-next.4", "@ng-bootstrap/ng-bootstrap": "^5.1.0", "bootstrap": "^4.3.1", "hammerjs": "^2.0.8", "moment": "^2.24.0", "ng-image-slider": "^2.0.1", "panzoom": "^8.1.2", "rxjs": "~6.5.2", "tslib": "^1.9.0", "zone.js": "^0.10.2" }, "devDependencies": { "@angular-devkit/build-angular": "^0.803.2", "@angular/cli": "^8.3.2", "@angular/compiler-cli": "^9.0.0-next.4", "@angular/language-service": "^9.0.0-next.4", "@types/jasmine": "~3.3.8", "@types/jasminewd2": "~2.0.3", "@types/node": "~8.9.4", "codelyzer": "^5.0.0", "jasmine-core": "~3.4.0", "jasmine-spec-reporter": "~4.2.1", "karma": "~4.1.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.1", "karma-jasmine": "~2.0.1", "karma-jasmine-html-reporter": "^1.4.0", "protractor": "~5.4.0", "ts-node": "~7.0.0", "tslint": "^5.15.0", "typescript": "^3.5.3" }tsconfig.json
{ "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "module": "esnext", "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, "importHelpers": true, "target": "es2015", "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] } }Para mí, el problema era que estaba usando:
loadChildren: () => import('./components/admin/_admin.module').then(m => m.AdminModule)en mi archivo route.ts pero no estaba importando el módulo. Así que si solo pongo
import { AdminModule } from './components/admin/_admin.module';lo resuelve
Había visto estos mensajes quejándose de los archivos environment.*.ts que en realidad se mencionan en angular.json para diferentes compilaciones, después de actualizar de Angular 8 a Angular 9, incluida la CLI local y global. Sin embargo, no ejecuté ng update que podría actualizar tsconfig.json con lo siguiente, sino que actualicé tsconfig.json manualmente.
"files": [ "src/main.ts", "src/polyfills.ts" ], "include": [ "src/**/*.d.ts" ]Entonces las advertencias desaparecen.
Actualización 2020-05-27 con Angular 9.1.x en Visual Studio Professional 2019
El pequeño bloque de arriba ya no es necesario. De lo contrario, hará que los códigos de prueba de especificaciones se quejen de "módulo no encontrado" contra los módulos que realmente están allí, ya que ng test se está compilando y ejecutando correctamente, y la compilación y la ejecución de la aplicación ng están bien. Aparentemente, algunas cosas en NG habían cambiado entre 9 y 9.1.
Aquí está mi trabajo tsconfig.json ahora:
{ "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "module": "es2020", "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, "target": "es2015", "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ], "skipLibCheck": true } }observaciones:
Me dirijo a Google Chrome y Safari solo, por lo que si desea orientar otros navegadores, es posible que deba ajustarlo en consecuencia.
Podría hacerlo funcionar definiendo la propiedad de files en tsconfig.app.json . Estos archivos son relativos al archivo tsconfig.app.json .
"files": [ "main.ts", "polyfills.ts" ]Actualizado a Angular 9 hoy y recibió advertencias. Mi solución fue agregar esta matriz de "archivos" sin el "src" en la ruta. Recien agregado:
"files": [ "main.ts", "polyfills.ts" ],Mi archivo completo tsconfig.app.json es:
{ "extends": "../tsconfig.json", "compilerOptions": { "outDir": "../out-tsc/app", "module": "es2015", "types": ["node"] }, "files": [ "main.ts", "polyfills.ts" ], "exclude": [ "src/test.ts", "**/*.spec.ts" ] }Esto puede parecer obvio, PERO verá esta advertencia para cualquier archivo que agregue pero que aún no esté referenciado/importado a otro archivo. Esto será evidente cuando intente editar uno de los archivos sujetos a la advertencia, e Ivy no vuelve a compilar automáticamente después de editar el archivo. Una vez que importa el módulo a un archivo dependiente y comienza a usarlo, las advertencias desaparecen.
Las respuestas anteriores pueden ser relevantes para algunos, pero lo que acabo de describir en esta publicación fue la causa principal de mis advertencias. Tenga en cuenta que no tengo una matriz de archivos o inclusión en mi tsconfig.json o tsconfig.app.json y las advertencias desaparecieron tan pronto como hice referencia a los archivos en otra parte de mi proyecto.
Resultó que debe eliminar esta línea de "incluir" "src/**/*.ts" de tsconfig.app.json y solo mantener los puntos de entrada en los archivos (main.ts y polyfills.ts)
tsconfig.app.json
"exclude": [ "src/**/*.spec.ts", "src/test.ts", "src/environments/environment.prod.ts" ]Este fragmento resuelve el problema.
En mi caso, fue más fácil excluir el archivo no utilizado:
"exclude": ["test.ts", "**/*.spec.ts","environments/environment.*.ts"]En mi escenario, a mi tsconfig.json le faltaba la exclusión con archivos de especificaciones. Este es el fragmento de mi archivo tsconfig que solucionó el problema.
"exclude": [ "**/*.spec.ts", "./node_modules/*" ], "files": [ "src/main.ts", "src/polyfills.ts" ]Mi equipo se ha estado golpeando la cabeza contra este mismo síntoma durante meses, y finalmente descubrí que nuestro tsconfig.worker.json era demasiado inclusivo. En nuestro caso, se mostraban cientos de mensajes de "parte de la compilación de TypeScript pero no se usa"; parecía que todos los archivos ts en la aplicación estaban en la lista, algunos varias veces.
De la forma que era:
"include": [ "src/**/*.worker.ts" ]Lo que detuvo el comportamiento defectuoso:
"files": [ ] # no include or exclude block Creo que lo que estaba sucediendo es que nuestro objeto de files estándar tsconfig.app.json era suficiente. Solo desde esos puntos de entrada (main.ts y polyfills.ts), el compilador de TS pudo encontrar referencias a todos nuestros archivos *.worker.ts y transpilarlos. De alguna manera, la configuración de tsconfig.webworker.ts le decía al compilador que mirara dos veces todos los archivos *.webworker.ts. No estoy muy seguro de por qué explota en tantas advertencias; quizás nuestros archivos webworker (tenemos alrededor de 20) están importando innecesariamente un montón de cosas que no usan.
De todos modos, con esta modificación, me deshice de las numerosas advertencias y nuestro tiempo de compilación se redujo a la mitad. ¡Uf!
Estaba siendo bombardeado con estos mensajes en Angular 10 sin haberlos visto antes. Cambiar includes no hizo ninguna diferencia.
Luego encontré https://github.com/angular/angular/pull/36211 .
Este es esencialmente el mismo error que se planteó en esta pregunta, pero para los archivos ngtypecheck.ts (¡no estoy seguro de lo que sean exactamente !)
ADVERTENCIA en /home/circleci/ng/aio/src/main.ngtypecheck.ts es parte de la compilación de TypeScript pero no se usa. Agregue solo puntos de entrada a las propiedades 'archivos' o 'incluir' en su archivo tsconfig.
Me parece que en realidad tiene que ver con @angular-builders/custom-webpack .
https://github.com/just-jeb/angular-builders/issues/781 donde se acaba de abrir un problema. Gracias a https://stackoverflow.com/a/62573294/16940 por señalar esto.
La actualización a la versión 10.0.1 me lo arregló, pero vea el problema anterior para conocer la última versión.
"@angular-builders/custom-webpack": "10.0.1" // as of todayIntenté muchas cosas para resolver este problema, y al final pude resolverlo.
mi problema fue actualizar una aplicación que se encontraba en angular 8.1 a angular 9.x, pero la aplicación también usaba Ionic
solo deberías tener aot: true dentro angular.json
en src/polyfills.ts para importar './zone-flags.ts'; eliminar .ts
https://medium.com/@grantbrits/upgrade-ionic-4-to-ionic-5-angular-76514079fb2a ingrese la descripción de la imagen aquí
02-08-2020
Aplicación Ionic 5+ Angular 9+.
Nota: consulte la sección de include .
tsconfig.app.json
{ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/app", "types": [] }, "files": [ "src/main.ts", "src/polyfills.ts" ], "include": [ "src/**/*.d.ts" ], "exclude": [ "src/**/*.spec.ts" ] }Verifique su archivo principal tsconfig.app.json .
y vea si tiene el siguiente contenido dentro,
{ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/app", "types": [] }, "files": [ "src/main.ts", "src/polyfills.ts" ], "include": [ "src/**/*.d.ts" ] }Lo más probable es que las líneas culpables fueran estas.
Agregue solo puntos de entrada a los
filesoincludepropiedades en su archivo tsconfig.
Por lo tanto, elimine estas líneas si las tiene en su tsconfig.app.json . De eso se trata el error :)
"exclude": [ "src/test.ts", "**/*.spec.ts" ]Espero que esto ayude a alguien.
Gracias.
Simplemente agregue zone-flags.ts también y elimine cualquier inclusión.
"files": [ "src/main.ts", "src/polyfills.ts", "src/zone-flags.ts" ]Después de actualizar a Angular 10, recibí las mismas advertencias. Al ejecutar npm i notifiqué discrepancias de versión para algunas dependencias de desarrollo. Después de actualizar estos ( npm i <package>@latest ) y actualizar nodejs a la versión 12 (era la versión 10), las advertencias desaparecieron.
En mi caso, estos fueron los paquetes que había que actualizar:
@angular-devkit/build-angularcodelyzerEnfrenté el mismo problema después de actualizar la aplicación angular 9 a angular 10. La actualización de angular-devkit lo resolvió.
En mi caso, las clases reportadas por la advertencia fueron realmente utilizadas. Sin embargo, el problema era que al importarlos tenían la extensión ".js".
Entonces, esta línea estaba causando el error "ADVERTENCIA en src\app\user.service.ts es parte de la compilación de TypeScript pero no se usa":
import { UserService } from './user.service.js';Y podría solucionarlo eliminando la extensión ".js":
import { UserService } from './user.service';después de probar las propuestas de soluciones anteriores, funcionó para mí
actualizar en su paquete.json
"@angular-devkit/build-angular": "~0.1000.3"Puedes ver aquí todas las versiones.
https://www.npmjs.com/package/@angular-devkit/build-angular?activeTab=versions
compruebe qué versión funciona con su versión actual de angular/core
para trabajar con angular 10 con la versión 0.1000.3 de @ angular-devkit/build-angular
Empecé a ver las advertencias en Angular 10 , lo cual es un poco sorprendente debido al hecho de que se trataba de una nueva aplicación creada con la CLI lista para usar y recibí los mensajes al hacer una compilación de productos para test.ts y enviornments.prod enviornments.prod.ts . Pensaría que estos archivos estarían excluidos de forma predeterminada, pero no lo están y eso es extraño.
El trato es que estos archivos no son necesarios para la transpolación de TypeScript; no necesitan que las versiones .js de los archivos se empaqueten y se envíen al navegador. Los archivos test.ts y environments.prod.ts son un medio para cumplir con los requisitos de tiempo de compilación en Angular. Por lo tanto, se pueden agregar a la sección de exclude en tsconfig.app.json o al archivo de configuración de TypeScript aplicable en su aplicación, como se muestra a continuación:
"exclude": [ "src/**/*.spec.ts", "src/test.ts", "src/environments/environment.prod.ts" ]Una vez que se agreguen como se indicó anteriormente, la advertencia ya no se mostrará.