Ошибка TS2307 после переноса проекта с углового 11 на угловой 12

#angular #typescript

Вопрос:

Я перенес свой проект с Angular 11 на Angular 12. Я получил ошибки при использовании обновления ng. Поэтому я выбрал грубый способ сделать это.

Я создал новый проект Angular 12, снова добавил зависимости, а затем заменил папку src. Проект Angular 11 имел значения по умолчанию в файлах конфигурации. Поэтому я подумал, что могу просто использовать значения по умолчанию для Angular 12.

Но опять же, я нахожу, что журналы сборки заполнены ошибкой TS2307 для локального файла.

Я вижу, что файл присутствует в папке. Но я все равно получаю эту ошибку

 Error: src/app/components/open-orders/open-orders.component.ts:2:23 - error TS2307: Cannot find module 'src/app/data/Order' or its corresponding type declarations.
 

tsconfig.json:

 {
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "module": "es2020",
    "lib": [
      "es2018",
      "dom"
    ]
  }
}
 

Это компонент open-orders.ts

 import { Component, OnInit } from '@angular/core';
import { Order } from 'src/app/data/Order';
import { CloudService } from 'src/app/services/cloud.service';
 

Я получаю ту же ошибку для двух локальных импорта

Получаю ту же ошибку, когда использую относительные пути

 import { Component, OnInit } from '@angular/core';
import { Order } from '../../data/Order';
import { CloudService } from '../../services/cloud.service';
 

Я поискал в сети и попробовал различные настройки (в tsconfig.json и angular.json), чтобы преодолеть TS2307, но ни одна из них, похоже, не работает.

Связано ли это с Угловым 12? Можете ли вы помочь мне решить эту проблему?

Комментарии:

1. почему вы обновили проект вручную, вместо того, чтобы использовать angular ng — update..?

2. Он ищет модуль на пути src/app/data/Order . Итак, есть ли у вас такой модуль? Правильный ли путь?

3. @Edison У меня возникла та же проблема, когда я обновился с обновлением ng. Поэтому я попробовал применить грубую силу.

4. Можете ли вы показать открытые заказы.component.ts ?

5. @MikeOne Я думаю, что в этом и заключается ошибка — он обновляет с углового 2 до 12, поэтому за пределами rxjs для рендеринга ivy маршрутизатор и несколько других библиотек имеют тонкие различия.

Ответ №1:

Вы получаете сообщение об ошибке, потому что он ищет модуль, в src/app/data/Order котором отсутствует. проверьте свой путь и посмотрите, существует ли такой модуль.

Комментарии:

1. он также может захотеть посмотреть на относительный путь — вместо src/app — попробуйте ./../../

2. Как я уже упоминал, это рабочий код, и весь код присутствует там. Я полагаю, что это какая-то проблема с некоторыми настройками конфигурации, которая неправильно использует корневую папку.

3. @chrisburd Я попробовал ../.. структуру. но я все равно получаю ту же ошибку.

4. видите ли вы папку «Данные/заказ»? попробуйте расположить относительный путь таким образом, чтобы он больше не ошибался. Или есть проблема с самим модулем. поэтому проверьте модуль заказа — его либо нет, как прокомментировал другой человек, либо это что-то, что нужно изменить в одном из компонентов. что, вероятно, произойдет позже. узнайте, какой компонент и если вы застряли, опубликуйте этот компонент, чтобы мы все могли вам помочь.

5. @chrisburd Да, я попробовал относительный путь. Но все равно получаю ту же ошибку. Я получаю эту ошибку для всего местного импорта.