ERROR @ angular / material / index.d.ts 'не является модулем. от '@ angular / material'; - PullRequest
0 голосов
/ 27 мая 2020

Я установил angular материалов, используя ng add @angular/material

Затем я написал следующие коды в файле app.module.ts

import {MatInputModule,MatCardModule,MatButtonModule} from'@angular/material';

Затем я обнаружил следующую ошибку. ОШИБКА в src / app / app.module.ts: 14: 8 - ошибка TS2306: Файл 'D: /Develop/Angular/brightway-app/node_modules/@angular/material/index.d.ts' не является модуль. 14} from '@ angular / material';

Вместо приведенных выше кодов я использовал

import { MatInputModule  } from "@angular/material/input";

import { MatCardModule } from '@angular/material/card';

import { MatButtonModule} from '@angular/material/button';

Работало успешно.

Что может быть причина проблемы, с которой я столкнулся с первым кодом? Не могли бы вы прояснить это?

Ответы [ 3 ]

0 голосов
/ 27 мая 2020

@ angular / material изменила структуру папок

Сначала index.d.ts имел оператор экспорта для всех модулей, теперь его нет

в предыдущих версиях вы можете увидеть несколько файлов d.ts, присутствующих в местоположение ..node_modules/@angular/material (т.е. для нескольких модулей), которое использовалось для импорта модуля из соответствующей папки (например, export * from './button/index';), и мы просто использовали для импорта этого файла

Но теперь эти файлы были перемещены в свои соответствующие папки (т.е. внутри папки кнопок). Следовательно, теперь нам нужно импортировать из соответствующих папок

0 голосов
/ 27 мая 2020

Попробуйте это при импорте модулей mat для вашего app.module

import { MatInputModule, MatCardModule , MatButtonModule } from '@angular/material';

и не забудьте добавить модули в массив импорта в app.module

imports: [
    MatInputModule,
    MatCardModule,
    MatButtonModule
  ],
0 голосов
/ 27 мая 2020

Вы можете проверить исходный код @ angular / material здесь (и увидеть, что в каталоге root нет модуля, который вызывает вашу ошибку).

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

Прежде, чем у вас будет один MaterialModule, содержащий все. Теперь этого модуля больше не существует, вместо этого у вас есть много специализированных модулей, таких как MatInputModule, MatCardModule, MatButtonModule ...

Это позволяет компилятору лучше выполнять разделение кода и сохранять только необходимое код, который сделает вашу связку легче :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...