【问题标题】:Create NPM package from multiple angular2 components for a CRUD application从多个 angular2 组件为 CRUD 应用程序创建 NPM 包
【发布时间】:2017-02-06 18:45:38
【问题描述】:

我是 angular2 的新手,我已经成功创建了三个组件,用于创建/编辑、查看和列出员工,组件选择器类似于 <create-employee>, <view-employee>, <list-employee>

我的要求是我需要在 nodejs 库中创建一个 npm 包,以便公开分发这个员工模块,这样单个 npm 模块应该具有所有这三个组件。

到目前为止,我确实在 documentation 的帮助下创建了一个 npm 包。我可以将它作为节点模块安装在我的应用程序中,并成功地使用了创建员工功能。但我缺少的是其他两个组件。我不想为视图和列表创建另外两个节点包,而是希望在单个 npm 包中提供这三个组件。

我期待的是:

app.module.ts

import { EmployeeModule } from 'employee-library';
@NgModule({
  declarations: [..],
  imports: [EmployeeModule],
  providers: [],
  bootstrap: [AppComponent]
 })

user-create.component.html
  <create-employee></create-employee>

user-view.component.html
  <view-employee></view-employee>

user-list.component.html
  <list-employee></list-employee>

【问题讨论】:

  • 感谢您宝贵的反对票!!。从下面的答案中得到了我的解决方案!

标签: angular npm angular2-components


【解决方案1】:

将您的 3 个组件包装在 EmployeeModule

import { NgModule } from '@angular/core';
// import ... 3 modules

@NgModule({
  declarations: [ CreateEmployee, ViewEmployee, ListEmployee ],
  imports: [...],
  providers: [...],
  exports: [ CreateEmployee, ViewEmployee, ListEmployee ]
})
export class EmployeeModule{ }

然后公开你的库,之后你就可以使用你的模块了

import { EmployeeModule } from 'employee-library';
@NgModule({
  declarations: [..],
  imports: [EmployeeModule],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule{ }

exports : Array|any[]> 指定一个列表 可以在任何模板中使用的指令/管道/模块 作为导入此 Angular 的 Angular 模块的一部分的组件 模块。

文档链接https://angular.io/docs/ts/latest/api/core/index/NgModule-interface.html#!#exports-anchor

【讨论】:

  • 感谢您的快速回复!!。我会试试这个,让你知道。
  • 你好朋友!工作超级......非常感谢!
猜你喜欢
  • 2016-12-21
  • 2021-03-04
  • 2017-11-14
  • 2018-10-21
  • 2017-07-19
  • 2017-07-20
  • 2017-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多