如何将模块从一个angular2-cli项目导出到另一个?

ham*_*bab 6 angular

我想将一个单一的madule从项目复制到另一个没有硬拷贝.并需要像npm这样的依赖管理器来处理这个问题.我的两个项目在一家公司开发,我可以在PC上克隆两个项目.

我想从一个项目导出一个模块,并将该模块导入另一个带有typescript导出和导入的项目.

请帮我解决这个问题.

小智 6

为了首先发布角度库,您应该创建自己的公共API模块(项目1),并使用打包程序(如ng-Packagr)打包该库。最后在其他项目(项目2)中使用您的库

项目1:

  1. 在@NgModule装饰器中,在export array部分中标识导出组件,如以下示例所示:

exports: [ReviewComponent, ]

  1. 并修改package.json文件。脚本部分中的身份打包程序:

    "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e", **"packagr": "ng-packagr -p ng-package.json"** }

  2. 创建ng-package.json配置:

    //这是一个例子 { "$schema": "./node_modules/ng-packagr/ng-package.schema.json", "lib": { "entryFile": "public_api.ts",} }

  3. 创建public_api.ts配置。就是说应该包装哪个模块用于出口:

export * from './src/app/reg-review/reg-review.module'

  1. 运行以下命令:

npm run packagr

  • 创建软件包后,转到dist子文件夹并运行以下命令: npm pack

项目2:

  • 引用库(在项目1的dist子文件夹中构建)npm install ../ngLibs/reg/registeration-0.0.0.tgz --save
    • 导入您的desigerd模块并使用它从'registeration'中导入{RegisterReviewModule}

您可以利用以下地址:

https://www.npmjs.com/package/ng-packagr

https://medium.com/@nikolasleblanc/building-an-angular-4-component-library-with-the-angular-cli-and-ng-packagr-53b2ade0701e


Adr*_*ciu 5

这里有多种选择,取决于你想要实现的目标,你可以选择一个而不是另一个:

  • 同一个CLI项目中可以有多个应用程序,配置文件中的apps属性是一个数组
  • 可以使用ng-packagr之类的工具来提取和发布外部模块
  • 可以使用Nx以类似monorepo的方式管理所有应用程序和库
  • 可以使用纱线工作空间来实现类似的单一方法
  • 如果你想共享组件,请查看Bitsrc等工具
  • 等等

最后,它是关于您有什么要求以及您希望如何在公司内工作.