以上就是全部步骤,如果有不清楚的请告诉我。创建两个 cli 项目后:
1) 从库项目中导出要使用的组件:
@NgModule({
...
exports: [MyComponent]
...
2) 安装 ng-packagr:
npm install ng-packagr --save-dev
3) 将两个文件添加到您的库项目中,ng-package.json 和 public_api.ts:
ngpackage.json 内容:
{
"$schema": "./node_modules/ng-packagr/ng-package.schema.json",
"lib": {
"entryFile": "public_api.ts"
}
}
4)导出要在主项目中使用的模块:
export * from './src/app/modules/whatever.module'
5) 在您的库项目中编辑 package.json 文件以包含以下内容:
"scripts": {
...
"packagr": "ng-packagr -p ng-package.json"
}
6)运行npm run packagr
,一旦该过程完成,您将在项目根目录中找到一个 dist 文件夹。这是您的组件库。
7)cd
进入 dist 文件夹并运行 npm pack。这将在 dist 文件夹的根目录中创建一个文件。
8)然后你可以选择在npm上发布它,或者直接从bitbucket、github等使用它。只需在主项目的package.json中添加依赖。
9) 安装后,您可以将组件导入任何应用程序的 app.module.ts,方法是将其包含在其 @NgModule 导入数组中……</p>
import { HeaderModule } from 'my-package-name';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
HeaderModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }