Как я могу исправить, где ссылки на шаблоны находятся в Angular 9? - PullRequest
0 голосов
/ 16 марта 2020

Я недавно обновил Angular с 8 до 9, и как только я это сделал, у меня начались ошибки компиляции, и я не могу заставить приложение работать снова. Кажется, что модули, которые используют мои шаблоны, указывают на неправильное место (удвоенные конечные точки).

Вот пример того, что он выводит.

ERROR in ./src/app/components/prod/settings-dashboard/font-page/font-page.component.ts
Module not found: Error: Can't resolve 
'../../../../../../node_modules/@angular/common/common' in 
'/Users/person/Projects/appilicious/src/app/components/prod/settings-dashboard/font-page'

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

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

Мой пакет. json использует angular при ~ 9.0.6

У меня есть проект fre sh с angular 9, и он работает безупречно ...

Ответы [ 3 ]

0 голосов
/ 16 марта 2020

Убедитесь, что все ваши пути правильны для ваших компонентов и модулей.

Для вашего общего модуля, попробуйте удалить ваши node_modules и package-lock.json.

Затем запустите npm cache clean -f и npm i (что является псевдонимом для npm install).

0 голосов
/ 16 марта 2020

Я сделал ошибку, создав файл типа index.ts для хранения всех моих модулей. Не совсем уверен, что это плохая практика - хотя это может быть ненужным. Итак, в основном:

modules.ts

export {CommonModule} from '@angular/common'

И SharedModule вызывал его

shared.module.ts

import {CommonModule} from '../modules'

@NgModule({
    imports: [CommonModule],
    exports: [CommonModule]
})
export class SharedModule {}

Когда я использовал только прямую ссылку, это работало. Не уверен, почему он это сделал, но это вызывает некоторую путаницу. Странно то, что это было сделано только для FormsModule и CommonModule.

0 голосов
/ 16 марта 2020

Команда ng update, должно быть, испортила некоторые из ваших импортов.

Проверьте все import { ... } from '/path/to/module'; и убедитесь, что path/to/module правильный.

Из вашего сообщения об ошибке это Кажется, что ссылка на модуль @angular/common была каким-то образом заменена на @angular/common/common, что неверно и приводит к тому, что компилятор не находит указанный модуль.

Итак, это очень поверхностная ошибка, которую вы должны иметь исправить быстро.

...