9

Heroku にはいくつかのアプリがあります。それらはすべて GruntJS を使用してアセットを構築し、S3 にデプロイします。1 つのアプリは、かなり長い間正常に動作しています。

他のアプリには、Gruntfile から構成変数を読み取れないという問題があります。Heroku のツールベルトを使用してセットアップを表示すると、次のように表示されます。

$ heroku config --app mydevapp --account personal
=== mydevapp Config Vars
AWS_ACCESS_KEY:         #########     
AWS_BUCKET:             #########
AWS_SECRET_KEY:         #########
BUILDPACK_URL:          https://github.com/ddollar/heroku-buildpack-multi.git
DATABASE_URL:           #########
PAPERTRAIL_API_TOKEN:   #########
TEST:                   test

これは素晴らしいことです。ただし、Grunt からこれらの変数を利用することはできません。Gruntfile から console.log(process.env) を実行すると、次のように表示されます。

{ GEM_HOME: '/tmp/build_e26d1d60-d447-40d8-b09b-02d3758a6027/.gem/ruby/1.9.1',
  SHELL: '/bin/bash',
  SSH_CLIENT: '10.207.46.127 55868 50678',
  GROUP: 'production',
  DEPLOY: 'production',
  STACK: 'cedar',
  SHLVL: '3',
  HOME: '/app',
  CPPPATH: '/tmp/node-node-hP8q/include',
  _: '/tmp/build_e26d1d60-d447-40d8-b09b-02d3758a6027/node_modules/grunt-cli/bin/grunt' 
}

そこには他にもいくつかの変数がありますが、何を安全に表示できるかわかりません。リストされている構成変数がまったく表示されません。

作業中のアプリと、process.env 変数に構成変数を持たない 2 つのアプリの違いがわかりません。

この方法で Grunt を使用することは、実際には最良のアイデアではないと読んだことがありますが、それが私たちがセットアップしたものです。もちろん、必要に応じて変更することもできます。

何か案は?明確にする必要があることはありますか?

4

2 に答える 2

8

デフォルトでは、Heroku は構成変数をビルド段階に公開しません。これが必要な場合は、次をuser-env-compile発行してラボを有効にする必要があります。

heroku labs:enable user-env-compile -a myapp

ドキュメント: https://devcenter.heroku.com/articles/labs-user-env-compile

于 2013-10-24T16:24:59.740 に答える