我最近按照本指南学习如何创建一个角度库并将其发布供我自己使用:https://medium.com/@nikolasleblanc/building-an-angular-4-component-library-with-the-angular-cli-and-ng-packagr-53b2ade0701e
在打包库并从我自己的角度项目中引用它之后,我发现了这个错误:nullinjectorerror:no provider for ngzone。
当我尝试在我的控制器中注入ngzone时,没有引用库中也在注入ngzone的组件,我的项目工作得很好。然而,当我试图在我的视图中引用库组件时,它不再工作了!
我花了一整天的时间想弄清楚这个问题,但是关于这个错误几乎没有任何信息,我相信这与ngzone无关,而是我忽略了一些东西。
我不确定我应该提供什么样的信息来更好地解决这个错误,所以请随时问我。
我的库和项目都参考Angular5.0.0和Zone.js 0.8.12。你可以在github上找到我的图书馆:https://github.com/lakylekidd/skating-library
任何帮助都会很感激的,它让我疯狂!!
提前谢谢你,
比利
最佳答案
我想我弄明白了为什么没用了。
结果发现我的库依赖于Angular5.2,而我的应用程序依赖于Angular5.0,所以我将我的应用程序升级到了5.2。另外,正如yurzui所建议的,我在使用的所有库中添加了peerdependencies。我在npm上发布了我的库,并在我的项目中编辑了它。它工作得很好。
我不能百分之百确定问题是什么,但在遵循所有这些步骤之后,问题就消失了。
希望将来有人遇到同样的问题时,这能有所帮助。
比利