【问题标题】:Angular CLI Passing Environment Variable in commandAngular CLI 在命令中传递环境变量
【发布时间】:2020-11-11 17:42:46
【问题描述】:

在使用诸如ng build 或尤其是在我的情况下ng serve 来更改或设置环境中的变量而不更改环境文件或每次都定义新环境时,有什么方法可以传递一些参数?

例如我有这个 environment.ts 文件

    export const environment = {
     apiData: true,
     authentication: true,
     checkValidation: true,
     signData: false,
     mockFileDirectoryUrl: '/assets/',
     saveUrl: 'http://localhost:5000/'
     getUrl: 'http://localhost:5005/'
    };

我想在本地运行我的应用程序以使用signData=true 标志和不同的SaveUrl 使用类似的命令进行测试:ng serve signData true saveUrl "https:/localhost:5050"

我找到了这种方法How to pass environment variables at building time in an Angular application using .env files,但问题在于每次完全重写环境文件时这个解决方案,但我想在运行时传递这些变量。

【问题讨论】:

  • 您可以分别为正常服务和生产模式创建单独的环境文件environment.tsenvironment.prod.ts,如果您要传递许多变量,这将是一种更简单的方法。
  • @BINFASK 我有单独的生产环境,但在本地我的环境中有许多标志,我想在某些情况下更改其中一些标志,否则我应该每次都更改环境。
  • medium.com/@ferie/… 有帮助吗?
  • @huanfeng 谢谢,但我已经在我的问题中链接到这种方法,并且我已经解释了为什么这对我没有帮助
  • 这可以帮助你medium.com/@balramchavan/…

标签: node.js angular angular-cli


【解决方案1】:

查看@ngx-env/builder,它公开了如下环境变量:

NG_APP_ENABLE_ANALYTICS=false
NG_APP_VERSION=$npm_package_version
NG_APP_COMMIT=$GITHUB_SHA

作为全局变量:

@Component({
  selector: "app-footer",
})
export class FooterComponent {
  version = process.env.NG_APP_VERSION;
  branch = process.env.NG_APP_BRANCH_NAME;
  commit = process.env.NG_APP_COMMIT;
  analyticsFlag = process.env.NG_APP_ENABLE_ANALYTICS;
}

通过管道:

<!-- Same output in the spans -->
<span> {{ 'process.env.NG_APP_BRANCH_NAME' | env }} </span>
<span> {{ 'NG_APP_BRANCH_NAME' | env }} </span>
<span> {{ branch }} </span>

示例由项目自述文件提供。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    相关资源
    最近更新 更多