79
votes

Comment se débarrasser du fichier d'avertissement .ts fait partie de la compilation TypeScript mais il n'est pas utilisé

Je viens de mettre à jour angular vers la dernière version 9.0.0-next.4 . Je n'utilise pas le routage, mais soudainement après la mise à jour, je continue de voir cet avertissement. Comment supprimer cet avertissement

ATTENTION dans src/war/angular/src/app/app-routing.module.ts fait partie de la compilation TypeScript mais il n'est pas utilisé. Ajoutez uniquement des points d'entrée aux propriétés 'files' ou 'include' de votre tsconfig.

package.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"
    ]
  }
}

tsconfig.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"
  }


0 commentaires

16 Réponses :


63
votes

Il s'est avéré que vous deviez supprimer cette ligne de "include" "src/**/*.ts" de tsconfig.app.json et ne conserver que les points d'entrée dans les fichiers (main.ts et polyfills.ts)


10 commentaires

Il semble que l'ajout de ces fichiers dans une partie d' tsconfig.app.json de tsconfig.app.json résout le problème


Je n'avais même pas "include" "src/**/*.ts" dans mon tsconfig.app.json et je reçois toujours les messages d'avertissement.


vous l'avez peut-être dans tsconfig.json? Il est hérité


Je n'ai d'inclusion nulle part dans mes tsconfig. J'ai déjà des exclusions. Mais je reçois 29 de ces avertissements. Si j'ajoute l'inclusion pour main et polyfills, j'obtiens toujours 3. Je n'arrive pas à exclure ces trois avec une combinaison de chemins.


J'ai corrigé cela en mettant à jour angular-cli avec npm i @angular/cli@latest


Il en résulte que le Cannot find name 'describe'. Do you need to install type definitions for a test runner? , qui peut être guérie en inversant les changements apportés dans cette réponse.


rien ne fonctionne angular-cli est sur la dernière version, aucun inclut sur tsconfig. une solution à ce jour?


aucune idée pourquoi je n'ai pas eu cela pour Angular 9 et que j'ai été submergé par Angular 10 avec tous ces messages?


Assurez-vous et vérifiez également le fichier tsconfig.json base, si tsconfig.app.json étend, ou un autre fichier.


Je dois définir l'inclusion pour l'auto-complétion dans vscode. Existe-t-il un moyen de conserver cela et de supprimer les avertissements?



-4
votes

Pour moi, le problème était que j'utilisais:

import { AdminModule } from './components/admin/_admin.module';

dans mon fichier routes.ts mais n'importait pas le module. Donc si je viens de mettre

loadChildren: () => import('./components/admin/_admin.module').then(m => m.AdminModule)

il le résout.


1 commentaires

Il s'agit d'un module chargé paresseusement, et il ne semble pas y avoir de raison pour laquelle vous voudriez l'importer, pour tuer le lazyloadedness.



17
votes

J'avais vu ces messages se plaindre de l'environnement. *. Ts fichiers qui sont en fait mentionnés dans angular.json pour différentes versions, après la mise à niveau d'Angular 8 à Angular 9, y compris CLI local et global. Cependant, je n'ai pas exécuté ng update qui pourrait mettre à jour tsconfig.json avec ce qui suit, mais j'ai mis à jour packages.json manuellement.

{
    "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
    }
}

Puis les avertissements disparaissent.

Mise à jour 2020-05-27 avec Angular 9.1.x dans Visual Studio Professional 2019

Le petit bloc ci-dessus n'est plus nécessaire. Sinon, cela entraînera les codes de test de spécification se plaignant de "module non trouvé" contre des modules qui sont réellement là puisque ng test est construit et fonctionne très bien, et la construction et l'exécution de l'application ng sont OK. Apparemment, quelque chose dans NG avait changé entre 9 et 9,1.

Voici mon travail tsconfig.json maintenant:

    "files": [
        "src/main.ts",
        "src/polyfills.ts"
    ],
    "include": [
        "src/**/*.d.ts"
    ]

remarques:

Je cible uniquement Google Chrome et Safari, donc si vous souhaitez cibler d'autres navigateurs, vous devrez peut-être ajuster en conséquence.


2 commentaires

J'ai changé la valeur de include dans mon tsconfig.app.json de: ["./**/*.ts"] à ["./**/*.d.ts"] Cela a supprimé l'avertissement pour moi.


Pas pour moi. J'ai supprimé l'entrée .ts (seulement conservé .d.ts ). Moins d'avertissements maintenant. Mais pas entièrement supprimé. J'ai vérifié tout tsconfig.



35
votes

Je pourrais le faire fonctionner en définissant la propriété files dans tsconfig.app.json . Ces fichiers sont relatifs au fichier tsconfig.app.json .

"files": [
    "main.ts",
    "polyfills.ts"
  ]


1 commentaires

Dans mon cas, je n'avais pas d'entrée de tableau de fichiers spécifique dans mon tsconfig.app.json, et je recevais le message d'erreur pour à peu près chaque nouveau fichier .ts que j'ai ajouté au projet. L'ajout explicite du tableau 'files' avec les 2 fichiers d'entrée ci-dessus a effacé les avertissements.



6
votes

Cela peut sembler évident, MAIS vous verrez cet avertissement pour tout fichier que vous ajoutez mais qui n'est pas encore référencé / importé dans un autre fichier. Cela deviendra évident lorsque vous tenterez de modifier l'un des fichiers soumis à l'avertissement, et Ivy ne recompile pas automatiquement après la modification du fichier. Une fois que vous importez le module dans un fichier dépendant et que vous commencez à l'utiliser, les avertissements disparaissent.

Les réponses ci-dessus peuvent être pertinentes pour certains, mais ce que je viens de décrire dans cet article était à l'origine de mes avertissements. Notez que je n'ai pas de tableau d'inclusion ou de fichiers dans mon tsconfig.json ou tsconfig.app.json et les avertissements ont disparu dès que j'ai effectivement référencé les fichiers ailleurs dans mon projet.


1 commentaires

cela répond en fait à la question et devrait être la réponse marquée - comme l'affiche dit "Je n'utilise pas le routage" et il se plaint que le fichier de routage est inutilisé ... alors utilisez-le ou supprimez-le et l'avertissement disparaîtra



13
votes

Mis à jour vers Angular 9 aujourd'hui et reçu des avertissements. Ma solution a été d'ajouter ce tableau "files" sans le "src" dans le chemin. Vient d'ajouter:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "module": "es2015",
    "types": ["node"]
  },
  "files": [
    "main.ts",
    "polyfills.ts"
  ],
  "exclude": [
    "src/test.ts",
    "**/*.spec.ts"
  ]
}

Mon fichier tsconfig.app.json complet est:

 "files": [
    "main.ts",
    "polyfills.ts"
  ],


2 commentaires

obtenir le fichier "... / main.ts", erreur introuvable avec angular 10


mon chemin de fichier main.ts c'est: "src \ main.ts", vérifiez si le vôtre est le même. Quoi qu'il en soit: je suis encore avec Angular 9.



0
votes

J'ai essayé beaucoup de choses pour résoudre ce problème et j'ai finalement pu le résoudre.

mon problème était de mettre à jour une application trouvée dans angular 8.1 vers angular 9.x, mais l'application utilisait également Ionic

vous ne devriez avoir que aot: true dans angular.json

dans src / polyfills.ts pour importer './zone-flags.ts'; supprimer .ts

https://medium.com/@grantbrits/upgrade-ionic-4-to-ionic-5-angular-76514079fb2a entrez la description de l'image ici


2 commentaires

medium.com/@grantbrits/...


Ajoutez simplement ./zone-flags.ts à la section des fichiers de votre tsconfig.app.json. Ne modifiez PAS le polyfills.ts



3
votes

Ajoutez simplement zone-flags.ts et supprimez toutes les inclusions.

 "files": [
    "src/main.ts",
    "src/polyfills.ts",
    "src/zone-flags.ts"
  ]


1 commentaires

A travaillé pour moi dans Angular 10.0.1.



9
votes

Utilisez-vous @ angular-builders / custom-webpack?

J'étais bombardé de ces messages dans Angular 10 sans les avoir jamais vus auparavant. Le changement includes ne fait aucune différence.

Ensuite, j'ai trouvé https://github.com/angular/angular/pull/36211 .

C'est essentiellement la même erreur que celle soulevée dans cette question mais pour les fichiers ngtypecheck.ts (quoi qu'ils soient exactement, je ne suis pas sûr!)

ATTENTION dans /home/circleci/ng/aio/src/main.ngtypecheck.ts fait partie de la compilation TypeScript mais il n'est pas utilisé. Ajoutez uniquement des points d'entrée aux propriétés 'files' ou 'include' de votre tsconfig.

Il me semble que c'est en fait à voir avec @angular-builders/custom-webpack .

https://github.com/just-jeb/angular-builders/issues/781 où un problème vient tout juste d'être ouvert. Merci à https://stackoverflow.com/a/62573294/16940 pour l'avoir signalé.

La mise à jour vers la dernière version bêta l'a corrigé pour moi, mais consultez le problème ci-dessus pour la dernière.

"@angular-builders/custom-webpack": "10.0.0-beta.0"    // as of today


6 commentaires

Même chose ici en utilisant @ angular-builders / custom-webpack ":" ^ 9.2.0 a essayé toutes les solutions là-bas, rien ne semble arrêter les AVERTISSEMENTS


@ ramon22 passer à 10.0.0-beta0 a fonctionné pour moi. Toutes les erreurs restantes concernaient les packages CommonJS.


Vous devrez peut-être également installer ou lier webpack si vous recevez le module Webpack introuvable


(À propos du commentaire de Sielu) Ma technique consiste à installer webpack (donc c'est spécifié explicitement dans devDependencies ), et à ajouter la même entrée aux resolutions pour éviter d'avoir potentiellement plusieurs versions de webpack installées (@ angular-devkit # build-angular a webpack dans son pair deps), car cela pourrait également causer divers problèmes. Pour vérifier si plusieurs versions de webpack sont installées, tapez yarn why webpack (et si vous travaillez avec npm, rendez-vous service et arrêtez;)).


À partir de maintenant, vous pouvez faire "@angular-builders/custom-webpack": "^10.0.1"


Si vous Cannot find module webpack , supprimez votre package-lock.json et exécutez à nouveau npm i . Cela devrait résoudre le problème. Je mets à niveau mon projet d'animal de compagnie vers Angular 10 github.com/trungk18/jira-clone-angular



0
votes

Vérifiez votre fichier tsconfig.app.json principal.

entrez la description de l'image ici

et voyez si vous avez le contenu suivant à l'intérieur,

"exclude": [
    "src/test.ts",
    "**/*.spec.ts"
  ]

Très probablement, les lignes à blâmer étaient les suivantes.

Ajoutez uniquement des points d'entrée aux files ou include propriétés dans votre tsconfig.

Donc, supprimez ces lignes si vous en avez sur votre tsconfig.app.json . Voilà ce qu'est l'erreur :)

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/app",
    "types": []
  },
  "files": [
    "src/main.ts",
    "src/polyfills.ts"
  ],
  "include": [
    "src/**/*.d.ts"
  ]
}

J'espère que cela aidera quelqu'un.

Merci.


0 commentaires

5
votes

02-08-2020

Application Ionic 5+ Angular 9+.

Remarque: voir la section 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"
  ]
}


0 commentaires

0
votes

Après la mise à niveau vers Angular 10, j'ai reçu les mêmes avertissements. Exécution de npm i signalé des incompatibilités de version pour certaines dépendances de développement. Après la mise à niveau de ceux-ci ( npm i <package>@latest ) et la mise à jour de nodejs vers la version 12 (était la version 10), les avertissements avaient disparu.

Dans mon cas, ce sont les packages qui ont dû être mis à jour:

  • @angular-devkit/build-angular
  • codelyzer

0 commentaires

0
votes

J'ai rencontré le même problème après la mise à jour de l'application angular 9 vers angular 10. La mise à jour angular-devkit l'a résolu.


0 commentaires

0
votes

Dans mon cas, les classes signalées par l'avertissement ont vraiment été utilisées. Cependant, le problème était que lors de leur importation, ils avaient l'extension ".js".

Donc, cette ligne provoquait l'erreur "AVERTISSEMENT dans src \ app \ user.service.ts fait partie de la compilation TypeScript mais il n'est pas utilisé":

import { UserService } from './user.service';

Et je pourrais le réparer en supprimant l'extension ".js":

import { UserService } from './user.service.js';


0 commentaires

1
votes

après avoir essayé les propositions de solutions avant, cela a fonctionné pour moi

mettre à jour dans votre package.json

"@angular-devkit/build-angular": "~0.1000.3" 

pouvez-vous voir ici toutes les versions.

https://www.npmjs.com/package/@angular-devkit/build-angular?activeTab=versions

vérifier quelle version fonctionne avec votre version actuelle d'angular / core

pour angular 10 travailler avec la version 0.1000.3 de @ angular-devkit / build-angular


2 commentaires

la solution a fonctionné pour moi, mais mieux vaut le faire: sur la base du lien que vous avez fourni: npm i @ angular-devkit / build-angular


ok, je suis content de t'avoir aidé :)



0
votes

J'ai commencé à voir les avertissements dans Angular 10 ce qui est un peu surprenant étant donné qu'il s'agissait d'une nouvelle application créée à l'aide de la CLI test.ts à l' test.ts et j'ai reçu les messages lors de la création d'une production pour test.ts et enviornments.prod.ts . Je pense que ces fichiers seraient exclus par défaut, mais ils ne le sont pas et c'est étrange.

Le problème est que ces fichiers ne sont pas nécessaires pour la transpolation TypeScript; ils n'ont pas besoin de versions .js des fichiers pour être regroupés et envoyés au navigateur. Les fichiers test.ts et environments.prod.ts sont un moyen de répondre aux exigences de temps de construction dans Angular. Par conséquent, ils peuvent être ajoutés à la section d' exclude dans tsconfig.app.json ou au fichier de configuration TypeScript applicable dans votre application comme ci-dessous:

  "exclude": [
    "src/**/*.spec.ts",
    "src/test.ts",
    "src/environments/environment.prod.ts"
  ]

Une fois ceux-ci ajoutés comme ci-dessus, l'avertissement ne s'affichera plus.


0 commentaires