在Angular2中,Angular / Material获取错误MdCoreModule未导出

时间:2017-09-29 16:43:06

标签: node.js angular

我最近继承了一个带有Angular 2项目的Node.js,我正在努力加快速度。显然,我遇到的问题很多,所以我不确定这里是否存在直接版本问题,或者我是否设置错误。

我在以下示例中的模块中导入以下内容:http://candordeveloper.com/2017/04/25/how-to-create-dynamic-menu-and-page-title-with-angular-material-and-cli/

import { //only import the portions you will use to optimize build (MaterialModule to include all is deprecated)
      MdCoreModule,
      MdButtonModule,
      MdCardModule,
      MdIconModule,
      MdMenuModule,
      MdRippleModule,
      MdSidenavModule,
      MdToolbarModule,
      //... add others you need
} from '@angular/material';

我用过

npm install --save @angular/material @angular/cdk

安装所需的软件包,但是“MdCoreModule”没有导出错误。

在package.json中我有:

{
  "name": "Test_Project",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^4.2.4",
    "@angular/cdk": "^2.0.0-beta.11",
    "@angular/common": "^4.2.4",
    "@angular/compiler": "^4.2.4",
    "@angular/core": "^4.2.4",
    "@angular/forms": "^4.2.4",
    "@angular/http": "^4.2.4",
    "@angular/material": "^2.0.0-beta.11",
    "@angular/platform-browser": "^4.2.4",
    "@angular/platform-browser-dynamic": "^4.2.4",
    "@angular/router": "^4.2.4",
    "core-js": "^2.4.1",
    "rxjs": "^5.4.2",
    "zone.js": "^0.8.14"
  },
  "devDependencies": {
    "@angular/cli": "1.4.3",
    "@angular/compiler-cli": "^4.2.4",
    "@angular/language-service": "^4.2.4",
    "@types/jasmine": "~2.5.53",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "~3.1.1",
    "jasmine-core": "~2.6.2",
    "jasmine-spec-reporter": "~4.1.0",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.2",
    "ts-node": "~3.2.0",
    "tslint": "~5.3.2",
    "typescript": "~2.3.3"
  }
}

我认为它可能是版本问题,但我无法在任何地方找到任何相关问题。

1 个答案:

答案 0 :(得分:1)

这是Angular从官方项目中删除的(现已弃用的)材料模块的副本。 See Here

import { NgModule } from '@angular/core';

import { OverlayModule } from '@angular/cdk/overlay';
import { A11yModule } from '@angular/cdk/a11y';
import { BidiModule } from '@angular/cdk/bidi';
import { ObserversModule } from '@angular/cdk/observers';
import { PortalModule } from '@angular/cdk/portal';
import { PlatformModule } from '@angular/cdk/platform';

import { 
  MdAutocompleteModule, 
  MdButtonModule, 
  MdButtonToggleModule, 
  MdCardModule, 
  MdChipsModule, 
  MdCheckboxModule, 
  MdDatepickerModule, 
  MdTableModule, 
  MdDialogModule, 
  MdExpansionModule, 
  MdFormFieldModule, 
  MdGridListModule, 
  MdIconModule, 
  MdInputModule, 
  MdListModule, 
  MdMenuModule, 
  MdPaginatorModule, 
  MdProgressBarModule, 
  MdProgressSpinnerModule, 
  MdRadioModule, 
  MdRippleModule, 
  MdSelectModule, 
  MdSidenavModule, 
  MdSliderModule, 
  MdSlideToggleModule, 
  MdSnackBarModule, 
  MdSortModule, 
  MdStepperModule, 
  MdTabsModule, 
  MdToolbarModule, 
  MdTooltipModule, 
  StyleModule, 
  MdCommonModule 
} from '@angular/material';

const MATERIAL_MODULES = [
  MdAutocompleteModule,
  MdButtonModule,
  MdButtonToggleModule,
  MdCardModule,
  MdChipsModule,
  MdCheckboxModule,
  MdDatepickerModule,
  MdTableModule,
  MdDialogModule,
  MdExpansionModule,
  MdFormFieldModule,
  MdGridListModule,
  MdIconModule,
  MdInputModule,
  MdListModule,
  MdMenuModule,
  MdPaginatorModule,
  MdProgressBarModule,
  MdProgressSpinnerModule,
  MdRadioModule,
  MdRippleModule,
  MdSelectModule,
  MdSidenavModule,
  MdSliderModule,
  MdSlideToggleModule,
  MdSnackBarModule,
  MdSortModule,
  MdStepperModule,
  MdTabsModule,
  MdToolbarModule,
  MdTooltipModule,
  OverlayModule,
  PortalModule,
  BidiModule,
  StyleModule,
  A11yModule,
  PlatformModule,
  MdCommonModule,
  ObserversModule,
];

@NgModule({
  imports: MATERIAL_MODULES,
  exports: MATERIAL_MODULES,
})
export class MaterialModule {}

MdCoreModule,虽然我不确定它是否曾经存在过,但是对于他们最近的版本并不存在,对你来说肯定是这样,因为你的package.json说你好吗?使用beta.11,这是目前最新的版本。如果你简单地摆脱MdCoreModule,我认为你的工作会有效。

我无法从您的代码中判断您是否已经完成此操作,但我还建议您将材料模块的导入分解为自己的文件,如上所述,然后导入/导出app.module.ts中的单独模块。为了"只导入您将用于优化构建的部分",您可以从导入和const导出中删除应用程序中未使用的任何模块。