角度可重用模块和组件

时间:2017-12-04 18:55:44

标签: angular module components shared

与Angular 2+共享可重用代码的正确/最佳方式是什么?我目前正在使用Angular 4,VSCode,TypeScript,npm和Angular CLI。我是一名高级C#开发人员,我想要升级一些Angular 1.3应用程序。我正在努力加快Angular 2+的速度。我目前专注于如何正确构建可以从重用中受益的大型应用程序。

我已经完成了PluralSite课程(使用Angular构建响应式SPA框架)并且有一个简单的站点工作(只是前端)。我喜欢" SPA框架和#34;之间的概念分离。和应用程序,并可以看到进化/扩展和重用框架将是非常好的。

我试图弄清楚如何分离SPA框架,然后在多个应用程序中使用它,因此只维护SPA框架代码的单个副本。如果我能够成功地获得我之后的分离和重用,我将非常关注构建可重用代码,并且通常包含60%以上的企业级应用程序。我在下面提供了一些更多细节和一些具体问题。

我已经能够成功地参考" (并因此导入)来自新应用程序的SPA框架的TypeScript代码,但我无法成功构建或运行。此时我没有任何有用的输出要分享,但我看到的情况让我相信我并不接近正确的方法。

文件结构是分开的,这意味着SPA框架文件夹结构在应用程序文件夹结构中不存在。在PluralSite课程之后,导致了一个应用程序和SPA框架在同一级别上的结构"项目结构中的(对等文件夹)。 Typescript构建(由Angular CLI驱动)同时发生并引用单个" node_modules"夹。

问题

  1. 我如何开发和构建SPA框架代码(以及其他类似的"可共享"组件)作为一个单独的项目并具有单独的node_modules依赖项(我假设这是可取的)?我假设SPA框架能够独立构建,但应用程序将依赖于SPA框架。我希望能够创建一个新的应用程序2"而不必复制SPA框架的代码。

  2. 我假设当我最终构建app1或app2(等等...... 3,4,5等)时,构建将引用应用程序的node_module依赖项,并且我赢了&# 39;(当我构建应用程序时)独立和单独构建SPA框架。

  3. 基本上寻找一种单独管理代码并利用SPA框架(和其他可重用代码)的方法,而无需嵌入代码和维护变体。

    任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:4)

以下是我如何实现您所寻求的目标。

  1. 创建一个新的角度项目(我建议使用angular-cli,但您不必)
  2. 在此处添加您希望在应用中共享的代码。例如,我创建了一个共享组件项目。
  3. 遵循Angular包格式以保持一致性。
  4. 我使用ng-packagr来构建和打包我的项目。 (https://github.com/dherges/ng-packagr
  5. 将您的项目发布到NPM(甚至是私有的NPM存储库)
  6. 现在,您的应用程序只需npm install YOUR_SHARED_PROJECT_NAME即可在应用程序中包含共享项目