невозможно импортировать MatDialogModule в app.module - PullRequest
1 голос
/ 31 марта 2020

Я новичок в angular, я использую angular диалоговое окно материала. сначала я добавил материал в свой проект и использовал его из @angular/material.

Когда я добавляю (import { MatDialogModule } from '@angular/material/dialog';)) в app.module.ts, получите ошибку ниже при компиляции проекта

 ERROR in node_modules/@angular/cdk/coercion/array.d.ts(10,60): error
 TS1005: ',' expected.
 node_modules/@angular/cdk/coercion/array.d.ts(10,61): error TS1005:
 ',' expected. node_modules/@angular/cdk/coercion/array.d.ts(10,75):
 error TS1144: '{' or ';' expected.
 node_modules/@angular/cdk/coercion/array.d.ts(10,77): error TS1011: An
 element access expression should take an argument.

почему?

это мой пакет. json:

      {
      "name": "sales-maret",
      "version": "0.0.0",
      "scripts": {
        "ng": "ng",
        "start": "ng serve",
        "build": "ng build",
        "test": "ng test",
        "lint": "ng lint",
        "e2e": "ng e2e"
      },
      "private": true,
      "dependencies": {
        "@angular/animations": "^7.2.16",
        "@angular/cdk": "^9.2.0",
        "@angular/common": "~7.2.0",
        "@angular/compiler": "~7.2.0",
        "@angular/core": "~7.2.0",
        "@angular/forms": "~7.2.0",
        "@angular/material": "^9.2.0",
        "@angular/platform-browser": "~7.2.0",
        "@angular/platform-browser-dynamic": "~7.2.0",
        "@angular/router": "~7.2.0",
        "core-js": "^2.5.4",
        "hammerjs": "^2.0.8",
        "material-icons": "^0.3.1",
        "rxjs": "~6.3.3",
        "tslib": "^1.9.0",
        "zone.js": "~0.8.26"
      },
      "devDependencies": {
        "@angular-devkit/build-angular": "~0.13.0",
        "@angular/cli": "~7.3.6",
        "@angular/compiler-cli": "~7.2.0",
        "@angular/language-service": "~7.2.0",
        "@types/node": "~8.9.4",
        "@types/jasmine": "~2.8.8",
        "@types/jasminewd2": "~2.0.3",
        "codelyzer": "~4.5.0",
        "jasmine-core": "~2.99.1",
        "jasmine-spec-reporter": "~4.2.1",
        "karma": "~4.0.0",
        "karma-chrome-launcher": "~2.2.0",
        "karma-coverage-istanbul-reporter": "~2.0.1",
        "karma-jasmine": "~1.1.2",
        "karma-jasmine-html-reporter": "^0.2.2",
        "protractor": "~5.4.0",
        "ts-node": "~7.0.0",
        "tslint": "~5.11.0",
        "typescript": "~3.2.2"
      }
    }

Ответы [ 3 ]

0 голосов
/ 14 апреля 2020

Ошибка из-за несоответствия между номерами версий пакетов @ angular / material, @ angular / cdk и @ angular / core. Пакеты @ angular / material и @ angular / cdk имеют версию 9.2.0, но @ angular / core имеет версию 7.2.0.

Для правильной работы три пакета должны иметь одинаковую версию.

Вам следует удалить пакеты @ angular / material и @ angular / cdk, а затем установить более старые версии.

npm uninstall @angular/material
npm uninstall @angular/cdk
npm install @angular/material@7.2.0
npm install @angular/cdk@7.2.0
0 голосов
/ 05 мая 2020

Это сработало для меня

Я получил ошибку до исправления

ОШИБКА в node_modules/@angular/cdk/coercion/array.d.ts (10,60): ошибка TS1005: ' ожидал. node_modules/@angular/cdk/coercion/array.d.ts (10,61): ошибка TS1005: ',' ожидается. node_modules/@angular/cdk/coercion/array.d.ts (10,75): ошибка TS1144: '{' or ';' ожидается. node_modules/@angular/cdk/coercion/array.d.ts (10,77): ошибка TS1011: выражение доступа к элементу должно принимать аргумент.

У меня были разные версии материала (9.x), core (7x.x) и cdk (9.x).

Я запустил в папке проекта и проверил пакет. json все они имеют одинаковую версию 7.x после приведенных ниже команд и работали хорошо npm uninstall @ angular / material npm uninstall @ angular / cdk npm install @ angular / material@7.2.0 npm install @ angular / cdk@7.2.0

0 голосов
/ 09 апреля 2020

Я считаю, что эта проблема должна быть решена при переустановке ng (Angular)

Ссылка для переустановки:

Открыть терминал

sudo npm uninstall -g angular-cli
sudo npm cache clean

(помните, что sudo означает глобальные изменения для всей машины - рекомендуется для этого процесса)

Чтобы убедиться, что ваша команда успешно выполнена, проверьте с помощью:

ng -v

Если он по-прежнему не установлен, выполните следующие действия:

Он покажет путь ng. Go к пути и, если он связан с каким-либо файлом, удалите ту же ссылку и фактический файл ng. В моем случае ссылка находится в /usr/bin/ng, а фактический путь к файлу ng - /lib/node_modules/@angular/cli/bin/ng.

sudo rm -rf /lib/node_modules/@angular/cli/bin/ng
sudo rm -rf /usr/bin/ng

Это должно удалить нужные npm и ng (Angular).

Чтобы переустановить ng, запустите:

sudo npm install -g @angular/cli

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

...