在不使用“meteor add”的情况下添加包依赖项

时间:2015-06-10 21:41:24

标签: meteor

在meteor中,有没有办法在每次命令提示符下都不包含meteor add package-name来包含子包(来自另一个包中的包)?

目前我已将iron:router声明为我的某个软件包的软件包依赖项,但为了使其正常工作,我需要在命令行运行meteor add iron:router,即使我已包含它位于我的package.js文件中api.use(...)

对于1个项目和/或1个包,这不是问题,但我正在尝试创建一个包含多个子包的“锅炉板”包,这样我只需要为任何新项目包含1个包。所有依赖项也会自动加载。

E.g。鉴于packages/boilerplate/package.js将具有以下声明......

api.use([
  'iron:router@1.0.9',
  'my:package-A@x.x.x',
  'my:package-B@x.x.x',
  'my:package-C@x.x.x',
  'my:package-D@x.x.x',
  'my:package-E@x.x.x',
  'my:package-F@x.x.x',
]);

......对于每个项目,我仍然必须为每个项目运行meteor add,这在很大程度上违背了这一点。

我正在开发Windows 8.1,如果这有所不同。

1 个答案:

答案 0 :(得分:1)

您需要使用api.imply,它会使这些包导出的符号可供您的应用使用,而无需单独meteor add

var packages = [
  'iron:router@1.0.9',
  'my:package-A@x.x.x',
  'my:package-B@x.x.x',
  'my:package-C@x.x.x',
  'my:package-D@x.x.x',
  'my:package-E@x.x.x',
  'my:package-F@x.x.x',
];
// grant this package access to other packages symbols
api.use(packages);
// grant the app using this package access to other packages symbols
api.imply(packages);