0

我正在创建流星应用程序,我决定将它分成包,这样我就可以控制文件加载顺序。但是,许多包具有共同的依赖项(其他外部包),例如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

4

1 回答 1

1

直接回答你的问题,没有implyreact暴露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

于 2015-11-11T13:15:00.540 回答