Як позбутися файлу попередження .ts є частиною компіляції TypeScript, але він не використовується


90

Я щойно оновив angular до останнього 9.0.0-next.4. Я не використовую маршрутизацію, але раптом після оновлення я продовжую бачити це попередження. Як видалити це попередження

ПОПЕРЕДЖЕННЯ in 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"
    ]
  }
}

Відповіді:


70

Виявилося, що вам потрібно видалити цей рядок з "включити" "src/**/*.ts"з tsconfig.app.jsonі зберігати лише точки входу у файлах (main.ts та polyfills.ts)


1
Здається, додавання цих файлів у частину виключення tsconfig.app.jsonвирішує проблему
dota2pro

54
Я навіть не "include" "src/**/*.ts"на мою , tsconfig.app.jsonі я все ще отримую попереджувальні повідомлення.
Пол Струпейкіс,

2
У мене немає включення ніде в моєму tsconfig. У мене вже є деякі виключення. Але я отримую 29 із цих попереджень. Якщо я додаю включення для main та polyfills, я все одно отримую 3. Я, здається, не можу виключити ці три за допомогою будь-якої комбінації шляхів.
jkyoutsey

2
Я виправив це, оновивши npm i @angular/cli@latest
angular

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

Я бачив, як ці повідомлення скаржились на файли. *. Ts, які насправді згадуються в angular.json для різних збірок, після оновлення з Angular 8 до Angular 9, включаючи локальний та глобальний CLI. Однак я не запускав, ng updateщо може оновити tsconfig.json наступним чином, натомість я оновив package.json вручну.

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

Тоді попередження зникають.

Оновлення 2020-05-27 з Angular 9.1.x у Visual Studio Professional 2019

Маленький блок вище вже не потрібен. В іншому випадку це призведе до тестування специфікаційних кодів, які скаржаться на "модуль не знайдений" щодо модулів, які насправді є, оскільки ng testбудується та працює нормально, а збірка та запуск програми 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
Я змінив значення include у своєму tsconfig.app.json з: ["./**/*.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 (тому це чітко вказано в 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

6

Це може здатися очевидним, АЛЕ ви побачите це попередження для будь-якого файлу, який ви додаєте, але на нього ще немає посилання / імпорту в інший файл. Це стане очевидним, коли ви спробуєте відредагувати один із файлів, на які поширюється попередження, а Плющ не автоматично перекомпілює після редагування файлу. Як тільки ви імпортуєте модуль у залежний файл і почнете використовувати його, попередження зникнуть.

Відповіді вище можуть бути релевантними для деяких, але те, що я щойно описав у цій публікації, було першопричиною моїх попереджень. Зауважте, у моєму tsconfig.json або tsconfig.app.json немає масиву include або files, і попередження зникли, як тільки я фактично посилався на файли в іншому місці мого проекту.


це насправді відповідає на питання і має бути позначеною відповіддю - як на плакаті написано "Я не використовую маршрутизацію", і він скаржиться, що файл маршрутизації не використовується ... так що використовуйте його або видаліть, і попередження зникне
72GM

6

02-08-2020

Додаток 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

1

спробувавши попередні рішення, це спрацювало для мене

оновіть у своєму package.json

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

Ви можете побачити тут всі версії.

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

перевірити, яка версія працює з вами поточною версією з angular / core

для кутовий 10 роботи з версією 0.1000.3 з @ кутового DevKit / нарощування кутовому


рішення працює для мене, але краще це зробити: на основі посиланням ви надали: НПМ я @ кутовий DevKit / нарощуванням кутовий
Kuldeep

0

Я спробував багато речень, щоб вирішити цю проблему, і врешті-решт зміг її вирішити.

моя проблема полягала в оновленні програми, яку було знайдено в кутовій 8.1 до кутової 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. НЕ модифікуйте 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"
  ]
}

Швидше за все, в цьому були звинувачення.

Додайте лише точки входу до властивостей filesабо includeу вашому tsconfig.

Отже, видаліть ці рядки, якщо у вас є на вашому 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.tsіenviornments.prod.ts . Я думаю, ці файли будуть виключені за замовчуванням, але вони не є, і це дивно.

Угода полягає в тому, що ці файли не потрібні для перекладу TypeScript; їм не потрібні .jsверсії файлів, які потрібно згрупувати та надіслати до браузера. test.tsІ environments.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
Це модуль із лінивим завантаженням, і, схоже, немає причини, чому ви хотіли б імпортувати його, щоб убити lazyloadedness.
Мухаммед бін Юсрат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.