导入 Material 模块时 Webpack 中的 Angular2 Material 错误

Angular2 Material errors in webpack when importing MaterialModule

我正在按照入门页面中的步骤操作 https://github.com/angular/material2/blob/master/GETTING_STARTED.md

到目前为止,我已经安装了 material 以下

npm install --save @angular/material

现在我正在尝试将 MaterialModule 导入到我的应用程序组件中

import { MaterialModule } from '@angular/material';

这会导致 webpack 抛出大量错误,例如

ERROR in [default] C:/mypathSource/Repos/dir/Web.Angular/node_modules/@angular/material/menu/menu-item.d.ts:14:27 
';' expected.
ERROR in [default] C:/mypathSource/Repos/dir/Web.Angular/node_modules/@angular/material/menu/menu-item.d.ts:14:29 
Duplicate identifier 'string'.
ERROR in [default] C:/mypathSource/Repos/dir/Web.Angular/node_modules/@angular/material/menu/menu-item.d.ts:15:4 
Duplicate identifier 'readonly'.
ERROR in [default] C:/mypathSource/Repos/dir/Web.Angular/node_modules/@angular/material/menu/menu-item.d.ts:15:13 
'=' expected.
ERROR in [default] C:/mypathSource/Repos/dir/Web.Angular/node_modules/@angular/material/menu/menu-item.d.ts:15:13 
Cannot find name '_tabindex'.
ERROR in [default] C:/mypathSource/Repos/dir/Web.Angular/node_modules/@angular/material/menu/menu-item.d.ts:15:22 
';' expected.
ERROR in [default] C:/mypathSource/Repos/dir/Web.Angular/node_modules/@angular/material/menu/menu-item.d.ts:15:24 
Duplicate identifier 'string'.
ERROR in [default] C:/mypathSource/Repos/dir/Web.Angular/node_modules/@angular/material/menu/menu-trigger.d.ts:26:4 
Duplicate identifier 'readonly'.
ERROR in [default] C:/mypathSource/Repos/dir/Web.Angular/node_modules/@angular/material/menu/menu-trigger.d.ts:26:13 
'=' expected.
ERROR in [default] C:/mypathSource/Repos/dir/Web.Angular/node_modules/@angular/material/menu/menu-trigger.d.ts:26:13 
Cannot find name 'menuOpen'.
ERROR in [default] C:/mypathSource/Repos/dir/Web.Angular/node_modules/@angular/material/menu/menu-trigger.d.ts:26:21 
';' expected.

我做错了什么?

从 angular/material 库导入 MaterialModule 后,您需要将该导入添加到 NgModule,如下所示:

(在同一个 ts 文件中导入了 MaterialModule):

@NgModule({
  imports: [
    ...
    MaterialModule.forRoot(),
    ...
  ]
  ...
})

这将添加该模块,以便您可以在您的应用程序中使用它。

我最终通过应对 angular/webpack 初学者工具包中的 package.json 更新了我的节点模块的所有版本,并且错误消失了。