2014-10-05 81 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