如何将app.yaml中定义的环境变量传递给angular 6 app?

时间:2019-01-09 11:01:55

标签: google-app-engine google-cloud-platform angular6

我搜索了很多,但仍然找不到解决方案。

这是我的app.yaml

runtime: nodejs8
service: angular-apollo-starter
env_variables:
  NODE_ENV: production
  GRAPHQL_API_DOMAIN: www.domain.com/graphql
handlers:
  - url: /
    static_files: dist/angular-apollo-starter/index.html
    upload: dist/angular-apollo-starter/index.html
  - url: /
    static_dir: dist/angular-apollo-starter

我尝试将process.envenvironment.prod.ts合并:

export const environment = {
  production: true,
  GITHUB_GRAPHQL_API_ENDPOINT: 'https://api.github.com/graphql',

  HOST: 'localhost',
  PORT: 4000,
  WS_PATH: '/subscriptions',
  GRAPHQL_PATH: '/graphql',
  ...process.env
};

我在app.component.html中打印环境变量:

<div>
  <pre>{{ environment }}</pre>
</div>

这是我将angular 6应用程序部署到GAE后的输出:

{"production":true,"GITHUB_GRAPHQL_API_ENDPOINT":"https://api.github.com/graphql","HOST":"localhost","PORT":4000,"WS_PATH":"/subscriptions","GRAPHQL_PATH":"/graphql"}

如您所见,没有GRAPHQL_API_DOMAINNODE_ENV环境变量。

我知道process垫片已被移除。我该如何解决这个问题?

更新

我在polyfills.ts中添加以下代码:

(window as any).process = {
  env: {
    DEBUG: undefined
  }
};

仍然无法正常工作。

0 个答案:

没有答案