2016-05-16 5 views
3

を意味:ElectronJs:中括弧を何「{}」私は下記のように、私はいくつか<code>interpolations</code>を発見したいくつかの電子package.json例を経由して、パッケージJSONで

"updater": { 
    "urls": { 
     "darwin": "{{& SQUIRREL_UPDATES_URL }}/update/%CHANNEL%/darwin?version=%CURRENT_VERSION%", 
     "win32": "{{& SQUIRREL_UPDATES_URL }}/update/%CHANNEL%/win32", 
     "linux": "{{& SQUIRREL_UPDATES_URL }}/update/%CHANNEL%/linux" 
    } 
    } 

    "piwik": { 
    "serverUrl": "{{& PIWIK_SERVER_URL }}" 
    }, 
    "sentry": { 
    "dsn": "{{& SENTRY_DSN_PRIVATE }}" 
    } 

私は本当に次のことを知りません:

  1. これは{{}}は、JSON、これらの変数は、
  2. 存在&がで何を意味しない
  3. が何を意味します"{{& SENTRY_DSN_PRIVATE }}"

もし誰でも説明できれば、本当に親切です。多くは事前に感謝します。

答えて

2

あなたはWhatsieと、それはpackage.jsonです。

ファイルtasks/compile.coffeeに位置ガルプタスクの1を見てみるならば、あなたは(CoffeeScriptの中)の行を参照することができます:ここでは実際のpackage.json

# Move package.json 
gulp.task 'compile:' + dist + ':package', ['clean:build:' + dist], -> 
    gulp.src './src/package.json' 
    .pipe mustache process.env 
    .pipe gulp.dest dir 

に渡されているがmustacheテンプレートエンジン - 最初の引数としてテンプレートを受け取ります(package.jsonはここではテンプレートのように動作します)。テンプレートに第2引数としてデータを挿入する場合はprocess.envとなります。

package.jsonmustacheのテンプレートのように機能し、mustacheの構文を使用できます。 中括弧{{}}がその一部です。テンプレートのコンパイル時に、実際のデータに置き換えられるプレースホルダとして使用されます。

ます。また、変数をエスケープ解除する&を使用することができます:mustache docsあなたもラインを見つけることができるには、{{&名}}

をそう{{& name}}エスケープされてから値を防ぐためです。そうでない場合、&を使用せず、値に危険な文字が含まれていると、それらはより安全な文字に置き換えられます(元々はテンプレート内のXSSを防ぐためです)。その結果、欲しいです。この場合、著者は元の価値を保持したいと考えています。

process.envに戻る - Node.JSのenvironment variablesにアクセスできるオブジェクトです。リポジトリ.env-exampleのファイルがあります。env変数の例は、開発者が異なる環境(たとえば、ローカルマシンやCIサーバなど)でアプリケーションを動作させるために設定する必要がある変数です。このファイルのいくつかの変数の名前は、テンプレートプレースホルダとしてpackage.jsonで使用されているものです - 私はこのアプリケーションの作者がこれを使ってさまざまな環境の構築プロセスを単純化すると考えています。

関連する問題