如何摆脱警告.ts文件是TypeScript编译的一部分,但未使用


90

我只是将角度更新为最新9.0.0-next.4。我没有使用路由,但是更新后突然看到此警告。我如何删除此警告

警告src/war/angular/src/app/app-routing.module.ts是TypeScript编译的一部分,但尚未使用。仅将入口点添加到tsconfig中的“文件”或“包含”属性。

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

Answers:


70

原来,您需要从“包括”中删除此行 "src/**/*.ts"tsconfig.app.json并且仅将入口点保留在文件中(main.ts和polyfills.ts)


1
看来在排除部分中添加这些文件tsconfig.app.json可以解决问题
dota2pro

54
我什至没有"include" "src/**/*.ts",我tsconfig.app.json仍然收到警告消息。
Paul Strupeikis,

2
我的tsconfig的任何地方都没有包含内容。我确实有一些排除对象。但是我收到了29条警告。如果我添加main和polyfill的include,我仍然会得到3。我似乎无法通过任何路径组合来排除这三个。
jkyoutsey

2
我通过使用npm i @angular/cli@latest
DauleDK '20

8
知道为什么我没有在Angular 9上得到这个并被所有这些消息淹没于Angular 10吗?
Simon_Weaver

41

我可以通过在中定义files属性来使其工作tsconfig.app.json。这些文件是相对于tsconfig.app.json文件的。

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

3
就我而言,我的tsconfig.app.json中没有特定的文件数组条目,并且对于添加到项目中的每个新.ts文件,我都会收到错误消息。明确地将“ files”数组与上面的2个条目文件一起添加,清除了警告。
马修·皮特斯

17

从Angular 8升级到Angular 9(包括CLI本地和全局)后,我看到这些消息抱怨关于environment。*。ts文件,这些文件实际上是在angular.json中针对不同的版本提到的。但是,我没有运行ng update,可能会使用以下内容更新tsconfig.json,而是手动更新了packages.json。

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

然后警告消失。

在Visual Studio Professional 2019中使用Angular 9.1.x更新2020-05-27

上面的小块不再需要。否则,将导致规格测试代码抱怨“模块未找到”,因为实际上存在的模块ng test正在构建和运行良好,并且ng应用的构建和运行正常。显然,NG中的某些内容在9到9.1之间发生了变化。

这是我现在正在工作的tsconfig.json:

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

备注:

我仅定位到Google Chrome和Safari,因此,如果要定位其他浏览器,则可能需要进行相应的调整。


2
我将tsconfig.app.json中的include值从[“ ./**/*.ts”]更改为[“ ./**/*.d.ts”],这为我消除了警告。
彼得·雷特莫

对我来说不是。我删除了该.ts条目(仅保留.d.ts)。现在较少的警告。但并未完全删除。我检查了任何tsconfig。
多米尼克

14

今天更新到Angular 9并收到警告。我的解决方案是在路径中添加此“文件”数组而不包含“ src”。刚刚添加:

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

我完整的tsconfig.app.json文件是:

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

2
获取文件“ ... / main.ts”,找不到错误,角度为10
tengda SU

我的main.ts文件路径为:“ src \ main.ts”,检查您的文件是否相同。无论如何:我仍在使用Angular 9。
fabio984

13

您在使用@ angular-builders / custom-webpack吗?

我在Angular 10中遭到这些消息的轰炸,这是以前从未见过的。变化includes没有影响。

然后我找到了https://github.com/angular/angular/pull/36211

这与在这个问题中提出的基本上是相同的错误,但是对于ngtypecheck.ts文件(无论它们是什么,我都不确定!)

/home/circleci/ng/aio/src/main.ngtypecheck.ts中的警告是TypeScript编译的一部分,但尚未使用。仅将入口点添加到tsconfig中的“文件”或“包含”属性。

在我看来,这实际上与@angular-builders/custom-webpack

https://github.com/just-jeb/angular-builders/issues/781 ,其中一个问题才刚刚打开。感谢https://stackoverflow.com/a/62573294/16940指出这一点。

更新至v10.0.1已为我修复了该问题,但有关最新信息,请参见上述问题。

"@angular-builders/custom-webpack": "10.0.1"    // as of today

同样在这里使用@ angular-builders / custom-webpack“:” ^ 9.2.0尝试了每种解决方案,似乎没有什么可以阻止警告的
ramon22

3
@ ramon22切换到10.0.0-beta0对我有用。剩下的所有错误都与CommonJS软件包有关。
Simon_Weaver

1
如果收到“找不到模块Webpack”,
Sielu

(关于Sielu的评论)我的技术是安装webpack(因此在中明确指定了它devDependencies),并添加相同的条目resolutions以避免潜在地安装多个版本的webpack(@ angular-devkit#build-angular在其对等部门中有webpack) ,因为这也可能导致各种问题。要检查您是否安装了多个版本的webpack,请键入yarn why webpack(如果您正在使用npm,请帮个忙,然后停止;))。
Morgan Touverey Quilling

1
截至目前,您可以执行"@angular-builders/custom-webpack": "^10.0.1"
trungk18 '20

6

这看起来似乎很明显,但是对于您添加但尚未引用/导入到另一个文件的任何文件,您都会看到此警告。当您尝试编辑受警告的文件之一时,这将变得很明显,并且Ivy在编辑文件后不会自动重新编译。一旦将模块导入到相关文件中并开始使用它,警告就会消失。

上面的答案可能与某些答案有关,但是我在这篇文章中刚刚描述的是我发出警告的根本原因。请注意,我的tsconfig.json或tsconfig.app.json中没有包含或文件数组,并且在我实际引用项目其他位置的文件时,警告消失了。


这实际上回答了问题,应该是标记的答案-正如发布者说的“我没有在使用路由”,并且抱怨路由文件未使用...因此使用它或将其删除,警告将消失
72GM

6

2020年2月8日

Ionic 5+ Angular 9+应用程序。

注意:请参阅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"
  ]
}

3

只需添加zone-flags.ts并删除所有包含。

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

1
在Angular 10.0.1中为我工作。
JWP


0

我尝试了很多方法来解决此问题,最终我得以解决。

我的问题是将在Angle 8.1中找到的应用程序更新为angular 9.x,但是该应用程序还使用了Ionic

你应该只有aot: true里面angular.json

在src / polyfills.ts中导入'./zone-flags.ts'; 删除.ts

https://medium.com/@grantbrits/upgrade-ionic-4-to-ionic-5-angular-76514079fb2a在此处输入图像描述



只需将./zone-flags.ts添加到tsconfig.app.json中的files部分。不要修改polyfills.ts
feder

0

检查您的主tsconfig.app.json文件。

在此处输入图片说明

看看里面是否有以下内容,

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

最有可能的原因是这条线。

仅将入口点添加到tsconfig中的filesinclude属性。

因此,请删除这些行tsconfig.app.json。这就是错误所在:)

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

希望对您有所帮助。

谢谢。


0

升级到Angular 10后,我得到了相同的警告。npm i对于某些开发人员依赖项,运行的报告版本不匹配。升级npm i <package>@latest完这些(),并将nodejs更新到版本12(之前是版本10)之后,警告消失了。

就我而言,这些是必须更新的软件包:

  • @angular-devkit/build-angular
  • codelyzer

0

将angular 9应用程序更新为angular 10之后,我遇到了同样的问题。更新angular-devkit解决了它。


0

就我而言,警告所报告的类确实被使用。但是,问题在于,导入它们时,它们的扩展名为“ .js”。

因此,此行导致错误“ src \ app \ user.service.ts中的警告是TypeScript编译的一部分,但未使用”:

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

我可以通过删除“ .js”扩展名来修复它:

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

0

tsconfig.app.json

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

此代码段解决了该问题。


-1

我开始看到警告,Angular 10基于它是开箱即用的CLI创建的新应用程序,当我为test.tsand做产品构建时收到消息时,我感到有些惊讶enviornments.prod.ts。我认为默认情况下会排除这些文件,但事实并非如此,这很奇怪。

该协议是在这些文件不是需要打字稿transpolation; 他们不需要.js捆绑文件的版本并将其发送到浏览器。在test.tsenvironments.prod.ts文件是在角建造时间要求的一种手段。因此,可以将它们添加到您应用中的exclude部分tsconfig.app.json或适用的TypeScript配置文件中,如下所示:

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

如上所述添加这些内容后,警告将不再显示。


-4

对我来说,问题是我正在使用:

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

在我的routes.ts文件中,但未导入模块。所以如果我把

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

它解决了。


6
这是一个延迟加载的模块,似乎没有理由要导入它以消除延迟加载的原因。
Muhammad bin Yusrat
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.