【问题标题】:cannot import MatDialogModule in app.module无法在 app.module 中导入 MatDialogModule
【发布时间】:2020-07-11 22:06:15
【问题描述】:

我是角度的初学者, 我正在使用角度材料对话框。首先,我将材料添加到我的项目中并从@angular/material 使用它。

当我在app.module.ts 中添加 (import { MatDialogModule } from '@angular/material/dialog';)) 时,编译项目时出现以下错误

 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.

为什么?

这是我的 package.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"
      }
    }

【问题讨论】:

  • 我创建新项目并添加材料。在新项目中我没有任何错误。两个项目中的所有文件都是平等的!!!我不明白这个错误发生了什么

标签: angular angular-material dialog angular-cli angular9


【解决方案1】:

该错误是因为@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

【讨论】:

  • 感谢您解决了我的问题。这是因为角度版本。
【解决方案2】:

这对我有用

我在更正之前出错了

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:元素访问表达式应该带一个参数。

我有不同版本的 material(9.x)、core(7x.x) 和 cdk(9.x)。

我在项目文件夹中运行并验证 package.json 在执行以下命令后都具有相同的 7.x 版本并且运行良好 npm卸载@angular/material npm卸载@angular/cdk npm install @angular/material@7.2.0 npm install @angular/cdk@7.2.0

【讨论】:

    【解决方案3】:

    我相信这个问题应该在你重新安装 ng (Angular) 后得到解决

    参考重新安装:

    打开终端

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

    (记住 sudo 意味着对整个机器进行全局更改 - 推荐用于此过程)

    为确保您的命令成功运行,请使用以下命令进行验证:

    ng -v
    

    如果仍然没有安装,请按照以下步骤操作:

    它将显示 ng 路径。转到路径,如果它与任何文件链接,则删除相同的链接和实际的 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,然后按照上述步骤操作。希望第一次尝试有效;)

    【讨论】:

      【解决方案4】:

      改变

      "@angular/cdk": "^9.2.0",
      "@angular/material": "^9.2.0",
      

      "@angular/cdk": "^7.2.0",
      "@angular/material": "^7.2.0",
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-13
        • 2022-08-17
        • 2018-10-20
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        • 2021-11-20
        • 2021-03-17
        相关资源
        最近更新 更多