如果我在package.js中使用api.imply,我是否必须对同一个包使用api.use?

MSa*_*ian 6 packages meteor

构建流星包时,您可以添加如下文件:

api.use('fourseven:scss@0.9.4', ['client', 'server']);
Run Code Online (Sandbox Code Playgroud)

你也可以告诉meteor让包用户访问其他包,如下所示:

api.imply('fourseven:scss@0.9.4', ['client', 'server']);
Run Code Online (Sandbox Code Playgroud)

在文档中,不清楚是否暗示一个包也使它可用.例如,我不确定这样做是否多余:

api.use('fourseven:scss@0.9.4', ['client', 'server']);
api.imply('fourseven:scss@0.9.4', ['client', 'server']);
Run Code Online (Sandbox Code Playgroud)

sai*_*unt 4

我刚刚用我的几个包测试了这个用例,我可以断言暗示包不会使其在包源中自动可用。

所以这意味着

api.use("foo:bar@x.y.z");
api.imply("foo:bar@x.y.z");
Run Code Online (Sandbox Code Playgroud)

foo:bar如果您打算在当前包源中使用和引用,则不是多余的。

您可以将api.imply其视为api.use对当前包上下文没有影响的应用程序上下文。

我听说他们计划在未来某个时候为应用程序上下文集成一个类似包的 API,这对于解决加载顺序等问题非常有用。