与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"夹。
问题
我如何开发和构建SPA框架代码(以及其他类似的"可共享"组件)作为一个单独的项目并具有单独的node_modules依赖项(我假设这是可取的)?我假设SPA框架能够独立构建,但应用程序将依赖于SPA框架。我希望能够创建一个新的应用程序2"而不必复制SPA框架的代码。
我假设当我最终构建app1或app2(等等...... 3,4,5等)时,构建将引用应用程序的node_module依赖项,并且我赢了&# 39;(当我构建应用程序时)独立和单独构建SPA框架。
基本上寻找一种单独管理代码并利用SPA框架(和其他可重用代码)的方法,而无需嵌入代码和维护变体。
任何帮助都将不胜感激。
答案 0 :(得分:4)
以下是我如何实现您所寻求的目标。
angular-cli
,但您不必)ng-packagr
来构建和打包我的项目。 (https://github.com/dherges/ng-packagr)npm install YOUR_SHARED_PROJECT_NAME
即可在应用程序中包含共享项目