Angular 4-在Angular应用程序中开发组件库

Angular 4-在Angular应用程序中开发组件库,angular,web,Angular,Web,我目前正在开发Angular 4应用程序,作为工作的一部分,我正在开发一个组件库,我希望在未来的不同Angular项目中使用它 将其视为一组UI组件(例如ngx引导) 经过一段时间的研究,似乎最常见的惯例是将工作分为两个项目,以及分别构建它们。 然后,当加载所述组件库时,我们将加载它的已编译版本 我希望避免单独构建项目,只需将外部库与父库一起构建, 但是我需要组件库位于角度项目的外部 所需文件树的示例: 对我来说,有一个类似的结果是很重要的,因为这个库将在上述Angular项目的开发过程中开发,

我目前正在开发Angular 4应用程序,作为工作的一部分,我正在开发一个组件库,我希望在未来的不同Angular项目中使用它

将其视为一组UI组件(例如ngx引导)

经过一段时间的研究,似乎最常见的惯例是将工作分为两个项目,以及分别构建它们。 然后,当加载所述组件库时,我们将加载它的已编译版本

我希望避免单独构建项目,只需将外部库与父库一起构建, 但是我需要组件库位于角度项目的外部

所需文件树的示例:

对我来说,有一个类似的结果是很重要的,因为这个库将在上述Angular项目的开发过程中开发,但也在项目之外。 拥有
npm链接
会很好,也很容易,因为webpack会注意到项目中的更改并立即重建项目,而且也不需要我事先构建库

我试着做的是使用“npm链接”到我机器上的某个外部库,当我使用Angular CLI时,它工作正常,但当我将它与一个支持Web包的项目一起使用时,我遇到了问题。 当我在网上阅读时,这样做似乎是完全不可能的

资料来源:

主要问题是编译后,当通过浏览器访问应用程序时,控制台中出现错误:

未捕获错误:由导入的意外值“myComponentModule” 模块“AppModule”。请添加@NgModule注释

奇怪的是,当直接将“myComponentLibrary”目录复制到
节点模块
目录时,它起了作用。 但是对于
symlink
/
npm链接
,它似乎不起作用

我在这里的目的是了解这个功能通常是如何实现的

但是,分开建设这两个项目将是我最后的选择,因为这两个项目的工作是如此平行,实在令人头痛

Angular Project/
- node_modules/
-- myComponentLibrary // This is a symlink to the myComponentLibrary directory
myComponentLibrary/
- index.ts
- myComponentLibrary.module.ts