使用Meteor的本地包资产

时间:2014-10-05 04:31:50

标签: meteor

我最初有一个使用private/settings.json资产的应用。在尝试使用此应用制作软件包时,我将该资源放入packages/x:package/config/settings.json,并在package.js' s .onUse添加

api.addFiles('config/settings.json', 'server', { isAsset: true });

我在包中成功使用它

settings = JSON.parse(Assets.getText('config/settings.json'));

直到我删除了private/settings.json。我现在得到了

TypeError: Cannot read property 'token' of undefined

如果我只保留private/settings.json,而是删除packages/x:package/config/settings.json(也从package.js中的config/更改为private/,包等等)

error: File not found: private/settings.json

(如何)我可以拥有仅包装本地的资产?或者,如何在包中的private/中包含/使用全局资产?

1 个答案:

答案 0 :(得分:4)

我认为包装无法访问应用程序private目录中的资产是有道理的。否则,程序包可能会意外泄露您应用程序的私人设置或资产。

听起来你想要的是在应用程序和包之间共享你的settings.json文件。有几种方法可以做到这一点:

  1. 将设置放入第二个包中,并在您的应用和第一个包中使用。
  2. 让您的软件包导出一个名为setSettings的方法,该方法允许该应用加载其设置,然后将其传递到您的软件包中。
  3. 使用Meteor.settings,并使用meteor --settings private/settings.json启动您的应用,而不是从资产中获取设置。