我为此目的使用peerDependencies
,但不管它是否足够,或者它是不可能的。
以aurelia-logging
为例。
我创建了一个库library-a
,它使用aurelia-logging
进行日志记录。
对于普通依赖项,我只需将其添加为dependencies
。
但是,aurelia-logging
包含一些全局状态(即存储创建的所有记录器),以便它公开setLevel()
函数,该函数可以设置所有记录器的logLevel。
由于这种全局状态,最终应用程序需要使用单个版本的aurelia-logging
来完成整个工作。
如果没有,某些模块可能使用aurelia-logging
的不同版本(因此是不同的实例)而setLevel()
函数无法正常工作。
作为图书馆作者,我将aurelia-logging
列为dependencies
以及peerDependencies
。
它能做我想做的事吗?
全球国家一般是一个坏主意,但在这种情况下,似乎没有别的办法。
答案 0 :(得分:0)
正如我更多地考虑它,解决方案是使用版本锁定模块来存储这些"全局状态"。
免责声明:您应该尽可能避免使用全局状态。
我为此创建了https://github.com/unional/global-store。
再次免责声明:只有在您知道自己正在做正确的事情时才使用它。阅读自述文件。 :)