无法在 app.module 中导入 MatDialogModule
cannot import MatDialogModule in app.module
我是 angular 的初学者,
我正在使用 angular material 对话框。首先我将 material 添加到我的项目中并从 @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"
}
}
我相信当您重新安装 ng (Angular) 时应该可以解决这个问题
重新安装参考:
打开终端
sudo npm uninstall -g angular-cli
sudo npm cache clean
(记住 sudo 意味着对整个机器进行全局更改 - 推荐用于此过程)
为确保您的命令 运行 成功,请使用:
进行验证
ng -v
如果仍未安装,请按照以下步骤操作:
它将显示 ng 路径。转到路径,如果它是 linked 与任何文件删除相同的 link 和实际的 ng 文件。在我的例子中,link 在 /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,然后按照上述步骤操作。希望第一次尝试成功 ;)
错误是因为@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
这对我有用
我在更正前有错误
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: '{' 或 ';'预期的。
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 安装@angular/material@7.2.0
npm 安装@angular/cdk@7.2.0
改变
"@angular/cdk": "^9.2.0",
"@angular/material": "^9.2.0",
到
"@angular/cdk": "^7.2.0",
"@angular/material": "^7.2.0",
我是 angular 的初学者,
我正在使用 angular material 对话框。首先我将 material 添加到我的项目中并从 @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"
}
}
我相信当您重新安装 ng (Angular) 时应该可以解决这个问题
重新安装参考:
打开终端
sudo npm uninstall -g angular-cli
sudo npm cache clean
(记住 sudo 意味着对整个机器进行全局更改 - 推荐用于此过程)
为确保您的命令 运行 成功,请使用:
进行验证ng -v
如果仍未安装,请按照以下步骤操作:
它将显示 ng 路径。转到路径,如果它是 linked 与任何文件删除相同的 link 和实际的 ng 文件。在我的例子中,link 在 /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,然后按照上述步骤操作。希望第一次尝试成功 ;)
错误是因为@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
这对我有用
我在更正前有错误
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: '{' 或 ';'预期的。 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 安装@angular/material@7.2.0 npm 安装@angular/cdk@7.2.0
改变
"@angular/cdk": "^9.2.0",
"@angular/material": "^9.2.0",
到
"@angular/cdk": "^7.2.0",
"@angular/material": "^7.2.0",