我目前正在开发一个Angular 4应用程序,作为我开发组件库的工作的一部分,我希望将来在不同的Angular项目中使用它。
将其视为一组UI组件(例如ngx-bootstrap)。
在研究了一段时间之后,似乎最常见的惯例是将工作分成两个项目,并将它们分开构建。 然后,在加载所述组件库时,我们将加载已编译的版本库。
我想避免单独构建项目,只需将外部库与父项一起构建, 但我需要组件库位于Angular项目的外部。
所需文件树的示例:
Angular Project/
- node_modules/
-- myComponentLibrary // This is a symlink to the myComponentLibrary directory
myComponentLibrary/
- index.ts
- myComponentLibrary.module.ts
对我来说,获得类似的结果对我来说很重要,因为该库将在上述Angular项目的开发过程中开发,但也在其之外。
拥有npm link
会很好,也很容易,因为webpack会立即通知更改并重建项目,同时,它也不需要我事先构建库。
我尝试做的是使用' npm link'对于我在我的机器上的一些外部库,它在我使用Angular CLI时有效,但是在使用webpack驱动的项目时遇到了问题。 当我在线阅读时,它似乎是一个完整的非诺力词。
来源: https://github.com/angular/angular-cli/wiki/stories-linked-library
主要问题是后期编译,当通过浏览器访问应用程序时,控制台出错:
未捕获错误:意外值' myComponentModule'进口的 模块' AppModule'。请添加@NgModule注释。
奇怪的是,在复制" myComponentLibrary"目录直接进入node_modules
目录,它起作用了。
但是使用symlink
/ npm link
它似乎无法正常工作。
我在这里要了解通常如何实现此功能。
但是单独建造这两个项目将是我的最后一招,因为这两个项目的工作是如此平行,这太令人头疼了。