2014-10-05 116 views
1

我原本有一个应用程序使用private/settings.json资产。当试图打个包从该应用程序中,我把该资产在packages/x:package/config/settings.json,并在package.js的.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(也config/改为private/在package.js,包装等),我得到

error: File not found: private/settings.json 

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

回答

4

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

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

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

对我来说也是有意义的。这一切都在包中,但感谢超级有用的提示! Upvoted。在我的情况下,问题实际上只是一个畸形的settings.json。 – jiku 2014-10-05 15:35:59