什么api.imply做什么?

Kyl*_*yll 17 meteor

来自Meteor文档:

给这个包的用户访问另一个包(通过传入字符串packagename)或包的集合(通过传入一个字符串数组[packagename1, packagename2]).

我不知道这意味着什么.
这个问题我知道imply可以使用use.

怎么api.imply办?
什么是api.useapi.imply?之间的区别?

sai*_*unt 18

api.use 给出一个包访问其他包导出的符号.

例如,你需要api.use("random")(看看它是如何在账户中,基本包做),如果你想使用Random符号的包装编号(怎么看random package.jsapi.export荷兰国际集团Random).

但是,meteor adding accounts-base不会让您的整个应用程序访问其使用的包(random在本例中).如果您的应用需要random,您仍然需要meteor add它.


api.imply 另一方面,让整个应用程序访问该包导出的符号.

例如,看看accounts-googleapi.imply荷兰国际集团accounts-base.

accounts-base负责导出Accounts符号,当您meteor add accounts-google不仅accounts-base在应用程序依赖项中添加符号时,也会在您的应用程序中accounts-base提供符号,特别是因为它是隐含的.


accounts-baseAccounts在自己的代码(api.use)中使用并将其依赖项符号导出到整个app(api.imply).

api.imply 可以用来制作只是拉入其他包的"影子包".

例如,在某些时候,MDG将showdown软件包重命名为markdown,他们可能只是声明了meteor remove showdown && meteor add markdown,但它需要对最终用户采取一些措施.

他们所做的是保留showdown包装,只是让它暗示新markdown包装.

  • 我假设`api.export`总是导出到整个项目!实际上,它用于导出可以多种方式导入的对象:整个项目(`meteor add`),包的范围(`api.use`)或两者(`api.imply`).感谢您的见解! (4认同)