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

时间:2018-05-05 09:48:52

标签: angular

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

我想从一个项目中导出一个模块,然后将该模块导入另一个带有typescript export& import的项目。

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:5)

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

中使用您的库

项目1:

  1. 在@NgModule装饰器中,在导出数组部分中标识导出组件,如下例所示:
  2. 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 config:

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

    3. 创建public_api.ts配置。那说出哪个模块应该用于出口目的:

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

      1. 运行以下命令:
      2. 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