【问题标题】:Package for aggregating external packages in meteor.js在meteor.js中聚合外部包的包
【发布时间】:2015-11-11 21:15:00
【问题描述】:

我正在创建流星应用程序,我决定将它分成几个包,这样我就可以控制文件加载顺序。 但是,许多包具有共同的依赖项(其他外部包),例如 reactmeteorhacks:flow-router。我想创建具有所有这些依赖项的主 myapp:app 包,我的应用程序中的其他包将暗示。

这是apppackage.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() 不应该分享reactmyapp:tasksList 包吗?这个问题有什么好的解决方案?

【问题讨论】:

    标签: meteor meteor-packages meteor-react


    【解决方案1】:

    要直接回答您的问题,没有imply 不会将react 暴露给myapp:tasksList

    你需要这样想:

    IMPLY passes references OUT
    USE takes references IN
    

    myapp:tasksList 中的所有暗示都是允许任何使用myapp:tasksList 的人访问myapp:app

    为了让您在myapp:tasksList 中使用myapp:app(以及它公开的所有引用),您还需要添加

      api.use([
          'myapp:app',
      ]);
    

    myapp:tasksList

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      相关资源
      最近更新 更多