我正在开发Angular库。我已经这样设置了库:
ng new mylibrary --create-application false
ng g library mylib
现在,我可以ng build
创建一个使用它的应用程序,如下所示:
ng new myapp
npm install ../mylibrary/dist/mylib
并将MylibModule
添加到我的imports
的{{1}}
这很好用,默认情况下,库中有一个我可以使用的组件。库中还有一个依赖项注入服务。也可以正常工作。
现在,我想通过http调用扩展我的库,因此我将app.module.ts
添加到库模块的导入中,并将HttpClient添加到服务的构造函数中。我用HttpClientModule
重建了lib,然后在应用上重新运行ng build
..并用npm install
运行,现在我的应用抛出了:
ng serve
我想我必须以某种方式告诉库使用从应用程序注入的HttpClient,但是如何?
答案 0 :(得分:2)
这是由于模块链接。如果使用“ ng server --aot”,则不会遇到此问题。您能否删除链接并将模块直接复制到node_modules
打开C:\ Git \ NgLibDI \ myapp \ node_modules并删除“ mylib”链接,然后将MyLib从Dist手动复制到myapp的node_modules