#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 Да, я попробовал относительный путь. Но все равно получаю ту же ошибку. Я получаю эту ошибку для всего местного импорта.