我正在创建流星应用程序,因此决定将其分成软件包,以便我可以控制文件加载顺序。但是,许多软件包具有共同的依赖性(其他外部软件包),例如react
或meteorhacks:flow-router
。我想创建myapp:app
具有所有这些依赖关系的主程序包,这是我的应用程序中其他程序包所隐含的。
这是app
package.js:
Package.describe({
name: 'myapp:app',
version: '0.0.1'
});
Package.onUse(function(api) {
api.versionsFrom('1.2.1');
// All external packages that will be used by other local packages
api.use([
'twbs:bootstrap',
], 'client');
api.use([
'ecmascript',
'react',
'meteorhacks:flow-router'
], ['client', 'server']);
});
我的软件包myapp:taskslist
暗示myapp:app
:
Package.describe({
name: 'myapp:taskslist',
version: '0.0.1'
});
Package.onUse(function(api) {
api.versionsFrom('1.2.1');
api.imply(['myapp:app']);
api.addFiles([
'client/tasksList.jsx',
'client/task.jsx',
'main.jsx'
], ['client']);
});
但是,它不起作用。我有一个错误,No plugin known to handle file 'client/taskList.jsx'
因为myapp:tasksList
,没有react
安装插件。不应该api.imply()
分享react
到myapp:tasksList
包装?什么是解决这个问题的好方法?
要直接回答您的问题,否imply
不暴露react
于myapp:tasksList
您需要这样考虑:
IMPLY passes references OUT
USE takes references IN
暗示myapp:tasksList
所做的一切就是允许任何用途myapp:tasksList
访问myapp:app
。
为了使用myapp:app
(及其公开的所有引用),myapp:tasksList
您还需要添加
api.use([
'myapp:app',
]);
到 myapp:tasksList
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句