2016-08-21 5 views
1

私は、サードパーティのウェブサイト(顧客サポートチャットの種類のアプリケーション)に埋め込まれるように設計された流星を使用してJavascriptコンポーネントを作成しようとしています。理想的には、私は、ユーザーがアプリケーションを使用するために、javascriptまたは単一の<script>タグの小さなチャンクを挿入できるようにしたいと思います。サーバから__meteor_runtime_config__変数を取得する方法

通常のWebページでは、流星は動的なものを生成し、大量の重要な流星の設定を持つグローバル変数__meteor_runtime_config__を注入します。

普通の流星の.jsバンドルファイルを含めると、この変数の値を取得することができますか、または流星アプリをデプロイするときにバンドルファイルに組み込むことができますか?

答えて

1

Meteor Build Clientと呼ばれる第三者のユーティリティがあり、Meteorアプリケーションのクライアント部分を抽出できるため、残りのMeteorアプリケーションとは別のWebページに埋め込むことができます(抽出したクライアントデプロイされたMeteorサーバーとDDPを使用してコードを作成します)。このツールを使用すると、時間を節約できます。

__meteor_runtime_config__設定の作業方法を知りたい場合は、source of the Meteor Build Client utilityをご覧ください(これはあなたのために行われます)。関連する部分を以下に掲載しました:

... 
// ADD the SCRIPT files 
var scripts = '__meteor_runtime_config__'+ "\n"+ 
'  <script type="text/javascript" src="'+ files['js'] +'"></script>'+ "\n"; 

// add the meteor runtime config 
settings = { 
    'meteorRelease': starJson.meteorRelease, 
    'ROOT_URL_PATH_PREFIX': '', 
    meteorEnv: { NODE_ENV: 'production' }, 
}; 
// on url = "default", we dont set the ROOT_URL, so Meteor chooses the app serving url for its DDP connection 
if(program.url !== 'default') 
    settings.ROOT_URL = program.url || ''; 

if(settingsJson.public) 
    settings.PUBLIC_SETTINGS = settingsJson.public; 

scripts = scripts.replace('__meteor_runtime_config__', '<script type="text/javascript">__meteor_runtime_config__ = JSON.parse(decodeURIComponent("'+encodeURIComponent(JSON.stringify(settings))+'"));</script>'); 
... 
関連する問題