Das Entfernen der .ts-Warnungsdatei ist Teil der TypeScript-Kompilierung, wird jedoch nicht verwendet

77

Ich habe gerade Angular auf den neuesten Stand gebracht 9.0.0-next.4. Ich verwende kein Routing, aber nach dem Update wird diese Warnung plötzlich angezeigt. Wie entferne ich diese Warnung?

WARNING in src/war/angular/src/app/app-routing.module.tsist Teil der TypeScript-Kompilierung, wird jedoch nicht verwendet. Fügen Sie den Eigenschaften 'files' oder 'include' in Ihrer tsconfig nur Einstiegspunkte hinzu.

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

Antworten:

62

Es stellte sich heraus , dass Sie diese Zeile entfernen müssen aus „schließen“ "src/**/*.ts"aus tsconfig.app.jsonund nur Einspeisepunkten in Dateien halten (main.ts und polyfills.ts)

Ayyash
quelle
1
Es scheint, dass das Hinzufügen dieser Dateien zum Ausschließen eines Teils tsconfig.app.jsondas Problem löst
dota2pro
47
Ich hatte nicht einmal "include" "src/**/*.ts"in meinem tsconfig.app.jsonund ich bekomme immer noch die Warnmeldungen.
Paul Strupeikis
2
Ich habe nirgendwo ein Include in meinen tsconfig's. Ich habe bereits einige Ausschlüsse. Aber ich bekomme 29 dieser Warnungen. Wenn ich das Include für Haupt- und Polyfills hinzufüge, erhalte ich immer noch 3. Ich kann diese drei mit keiner Kombination von Pfaden ausschließen.
Jkyoutsey
2
Ich habe dies behoben, indem ich npm i @angular/cli@latest
angle
6
Hast du eine Idee, warum ich das für Angular 9 nicht bekommen habe und mit Angular 10 mit all diesen Nachrichten überflutet wurde?
Simon_Weaver
34

Ich könnte es zum Laufen bringen, indem ich die filesEigenschaft in definiere tsconfig.app.json. Diese Dateien sind relativ zur tsconfig.app.jsonDatei.

"files": [
    "main.ts",
    "polyfills.ts"
  ]
emp
quelle
3
In meinem Fall hatte ich keinen bestimmten Dateiarrayeintrag in meiner Datei tsconfig.app.json und erhielt die Fehlermeldung für nahezu jede neue .ts-Datei, die ich dem Projekt hinzugefügt habe. Durch explizites Hinzufügen des Arrays 'files' mit den beiden obigen Eintragsdateien wurden die Warnungen gelöscht.
Matthew Pitts
16

Ich hatte gesehen, wie sich diese Nachrichten über die Umgebung beschwerten. *. Ts-Dateien, die tatsächlich in angular.json für verschiedene Builds erwähnt werden, nach dem Upgrade von Angular 8 auf Angular 9, einschließlich lokaler und globaler CLI. Ich habe jedoch nicht ausgeführt, ng updatewodurch tsconfig.json möglicherweise wie folgt aktualisiert wird. Stattdessen habe ich packages.json manuell aktualisiert.

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

Dann verschwinden die Warnungen.

Aktualisieren Sie 2020-05-27 mit Angular 9.1.x in Visual Studio Professional 2019

Der kleine Block oben wird nicht mehr benötigt. Andernfalls werden die Spezifikationstestcodes "Modul nicht gefunden" gegen Module beschwert, die tatsächlich vorhanden sind, da ng testdas Erstellen und Ausführen einwandfrei funktioniert und das Erstellen und Ausführen der ng-App in Ordnung ist. Anscheinend hatte sich etwas in NG zwischen 9 und 9.1 geändert.

Hier ist meine Arbeit tsconfig.json jetzt:

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

Bemerkungen:

Ich ziele nur auf Google Chrome und Safari ab. Wenn Sie also auf andere Browser abzielen möchten, müssen Sie diese möglicherweise entsprechend anpassen.

ZZZ
quelle
2
Ich habe den Wert für include in my tsconfig.app.json von ["./**/*.ts"] in ["./**/*.d.ts"] geändert. Dadurch wurde die Warnung für mich entfernt.
Peter Wretmo
Nicht für mich. Ich habe den .tsEintrag entfernt (nur behalten .d.ts). Weniger Warnungen jetzt. Aber nicht ganz entfernt. Ich habe alle tsconfig überprüft.
Dominik
11

Heute auf Angular 9 aktualisiert und Warnungen erhalten. Meine Lösung bestand darin, dieses Array "files" ohne das "src" im Pfad hinzuzufügen. Gerade hinzugefügt:

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

Meine vollständige Datei tsconfig.app.json lautet:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "module": "es2015",
    "types": ["node"]
  },
  "files": [
    "main.ts",
    "polyfills.ts"
  ],
  "exclude": [
    "src/test.ts",
    "**/*.spec.ts"
  ]
}
fabio984
quelle
1
get file "... / main.ts", nicht gefundener Fehler mit eckigem 10
tengda SU
Mein main.ts-Dateipfad lautet: "src \ main.ts". Überprüfen Sie, ob Ihr Pfad derselbe ist. Wie auch immer: Ich bin noch bei Angular 9.
fabio984
9

Verwenden Sie @ angle-builders / custom-webpack?

Ich wurde mit diesen Nachrichten in Angular 10 bombardiert, nachdem ich sie noch nie zuvor gesehen hatte. Das Ändern includesmachte keinen Unterschied.

Dann fand ich https://github.com/angular/angular/pull/36211 .

Dies ist im Wesentlichen der gleiche Fehler wie in dieser Frage, aber für ngtypecheck.tsDateien (was auch immer sie genau sind , ich bin nicht sicher!)

WARNUNG in /home/circleci/ng/aio/src/main.ngtypecheck.ts ist Teil der TypeScript-Kompilierung, wird jedoch nicht verwendet. Fügen Sie den Eigenschaften 'files' oder 'include' in Ihrer tsconfig nur Einstiegspunkte hinzu.

Es sieht für mich so aus, als hätte es tatsächlich damit zu tun @angular-builders/custom-webpack.

https://github.com/just-jeb/angular-builders/issues/781, wo ein Problem gerade erst geöffnet wurde. Vielen Dank an https://stackoverflow.com/a/62573294/16940 für diesen Hinweis.

Das Update auf die neueste Beta hat das Problem für mich behoben, aber das neueste Problem finden Sie oben.

"@angular-builders/custom-webpack": "10.0.0-beta.0"    // as of today
Simon_Weaver
quelle
Das gleiche gilt hier für @ angle-builders / custom-webpack ":" ^ 9.2.0 hat jede Lösung ausprobiert. Nichts scheint WARNING's aufzuhalten
ramon22
3
@ ramon22 Umstellung auf 10.0.0-beta0 hat bei mir funktioniert. Alle verbleibenden Fehler betrafen CommonJS-Pakete.
Simon_Weaver
1
Möglicherweise müssen Sie auch das Webpack installieren oder verknüpfen, wenn Sie das Modul Webpack nicht finden können
Sielu
(Über Sielus Kommentar) Meine Technik besteht darin, das Webpack zu installieren (daher wird es explizit in angegeben devDependencies) und denselben Eintrag hinzuzufügen resolutions, um zu vermeiden, dass möglicherweise mehrere Versionen des Webpacks installiert sind (@ angle-devkit # build-angle hat Webpack in seinen Peer-Deps). , da dies auch verschiedene Probleme verursachen könnte. Um zu überprüfen, ob Sie mehrere Versionen von Webpack installiert haben yarn why webpack, geben Sie ein (und wenn Sie mit npm arbeiten, tun Sie sich selbst einen Gefallen und hören Sie auf;)).
Morgan Touverey Quilling
Ab sofort können Sie"@angular-builders/custom-webpack": "^10.0.1"
trungk18
6

Dies mag offensichtlich erscheinen, ABER Sie sehen diese Warnung für jede Datei, die Sie hinzufügen, aber noch nicht referenziert / in eine andere Datei importiert haben. Dies wird deutlich, wenn Sie versuchen, eine der Dateien zu bearbeiten, für die die Warnung gilt, und Ivy nach dem Bearbeiten der Datei nicht automatisch neu kompiliert wird. Sobald Sie das Modul in eine abhängige Datei importieren und verwenden, verschwinden die Warnungen.

Die obigen Antworten mögen für einige relevant sein, aber was ich gerade in diesem Beitrag beschrieben habe, war die Hauptursache für meine Warnungen. Beachten Sie, dass meine Datei tsconfig.json oder tsconfig.app.json kein Include- oder Dateiarray enthält und die Warnungen nicht mehr angezeigt werden, sobald ich tatsächlich auf die Dateien an anderer Stelle in meinem Projekt verwiesen habe.

Matthew Pitts
quelle
Dies beantwortet tatsächlich die Frage und sollte die markierte Antwort sein - da auf dem Poster steht "Ich verwende kein Routing" und es sich beschwert, dass die Routing-Datei nicht verwendet wird ... also entweder verwenden oder löschen und die Warnung verschwindet
72GM
4

02-08-2020

Ionic 5+ Angular 9+ App.

Hinweis: siehe includeAbschnitt.

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"
  ]
}
Sampath
quelle
3

Fügen Sie einfach auch die zone-flags.ts hinzu und entfernen Sie alle Includes.

 "files": [
    "src/main.ts",
    "src/polyfills.ts",
    "src/zone-flags.ts"
  ]
feder
quelle
1
Arbeitete für mich in Angular 10.0.1.
JWP
1

Nachdem ich die vorherigen Lösungsvorschläge ausprobiert hatte, funktionierte es für mich

Update in Ihrer package.json

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

können Sie hier alle Versionen sehen.

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

Überprüfen Sie, welche Version mit Ihrer aktuellen Version von Angular / Core funktioniert

Für Angular 10 arbeiten Sie mit Version 0.1000.3 von @ angle-devkit / build-angle

Daniel Lopez
quelle
Die Lösung hat für mich funktioniert, jedoch besser: basierend auf dem von Ihnen angegebenen Link: npm i @ angle-devkit / build-
angle
ok, ich bin froh, dir geholfen zu haben :)
Daniel Lopez
0

Ich habe viele Dinge versucht, um dieses Problem zu lösen, und am Ende konnte ich es lösen.

Mein Problem war das Aktualisieren einer App, die in Winkel 8.1 gefunden wurde, auf Winkel 9.x, aber die App verwendete auch Ionic

du solltest nur aot: truedrinnen habenangular.json

in src / polyfills.ts './zone-flags.ts' importieren; .ts entfernen

https://medium.com/@grantbrits/upgrade-ionic-4-to-ionic-5-angular-76514079fb2a Geben Sie hier die Bildbeschreibung ein

Elkin Gutierrex
quelle
medium.com/@grantbrits/…
Elkin Gutierrex
Fügen Sie einfach ./zone-flags.ts zum Dateibereich in Ihrer tsconfig.app.json hinzu. Ändern Sie NICHT die
polyfills.ts
0

Nach dem Upgrade auf Angular 10 erhielt ich die gleichen Warnungen. Das Ausführen npm igemeldeter Versionsinkongruenzen für einige Entwicklungsabhängigkeiten. Nach dem Upgrade dieser ( npm i <package>@latest) und dem Aktualisieren von nodejs auf Version 12 (war Version 10) waren die Warnungen verschwunden.

In meinem Fall waren dies die Pakete, die aktualisiert werden mussten:

  • @angular-devkit/build-angular
  • codelyzer
Yaba
quelle
0

Ich hatte das gleiche Problem, nachdem ich die Angular 9-App auf Angular 10 aktualisiert hatte. Das Aktualisieren des Angular-Devkits löste das Problem.

Rodelarode
quelle
0

In meinem Fall wurden die von der Warnung gemeldeten Klassen wirklich verwendet. Das Problem war jedoch, dass sie beim Importieren die Erweiterung ".js" hatten.

Diese Zeile verursachte also den Fehler "WARNUNG in src \ app \ user.service.ts ist Teil der TypeScript-Kompilierung, wird aber nicht verwendet":

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

Und ich könnte es beheben, indem ich die Erweiterung ".js" entferne:

import { UserService } from './user.service';
Víctor Espinosa Mateu
quelle
-1

Überprüfen Sie Ihre Hauptdatei tsconfig.app.json.

Geben Sie hier die Bildbeschreibung ein

und sehen Sie, ob Sie folgenden Inhalt enthalten,

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

Höchstwahrscheinlich waren dies die Schuldigen.

Fügen Sie den filesoder include-Eigenschaften in Ihrer tsconfig nur Einstiegspunkte hinzu.

Entfernen Sie also diese Zeilen, falls Sie sie auf Ihrem haben tsconfig.app.json. Darum geht es in dem Fehler :)

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

Ich hoffe das wird jemandem helfen.

Vielen Dank.

Anjana Silva
quelle
-4

Für mich war das Problem, dass ich verwendete:

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

in meiner Datei route.ts, aber kein Modul importiert. Also, wenn ich nur setze

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

es löst es.

user12627115
quelle
6
Dies ist ein faul geladenes Modul, und es scheint keinen Grund zu geben, warum Sie es importieren möchten, um die Faulheit zu beseitigen.
Muhammad bin Yusrat