您可以在smart.json中定义包所依赖的包,例如:
{ [...], "packages": { "package1": {}, "package2": {} } }
这意味着我的包依赖于package1和package2。是否可以声明我的包依赖于package1或package2?
发布于 2014-08-14 07:13:32
不,如果有这样的方式来包含包,我会非常惊讶的。如果你真的想要依赖于两个包中的一个,你必须在你的包代码中实现它(你将依赖于这两个包,并且你的逻辑必须选择使用哪个包)。
我能想到的下一件最好的事情就是编辑package.js文件,这样就可以创建一个弱依赖:
可以在包之间创建弱依赖关系。如果包A对包B具有弱依赖性,这意味着在应用程序中包含A并不会强制B也包含在内-但是,如果B包含在内,例如由应用程序开发人员或其他包包含,那么B将在A之前加载。您可以使用这一点来生成包,这些包可以选择性地与其他包集成或增强(如果这些包存在)。要创建弱依赖项,请将{ weak : true}作为第三个参数传递给api.use。当你弱依赖一个包时,你看不到它的输出。您可以通过查看Package.foo是否存在来检测是否存在可能存在的弱依赖包,并从同一位置获取其导出。
也许有另一种解决方案,介意解释一下为什么你希望你的包依赖是这样的吗?
发布于 2014-08-21 02:19:59
我开发的one of packages也有同样的问题。我所做的就是没有在smart.json文件中指出任何依赖关系,让用户决定他/她想要使用哪个包,我已经在包的入门指南中清楚地提到了这一点。在我的例子中,它是我想要的bootstrap3包
https://stackoverflow.com/questions/25268703
复制相似问题