在 Angular 5 环境中使用 process.env

2023-12-26

我尝试使用标准构建 Angular 5 应用程序ng build --prod命令,我想在中设置基本的API-Urlenvironment.prod.ts取决于我的价值process.env变量。

这是我的文件:

export const environment = {
    production: true,
    apiUrl: `${process.env.BASE_URL}` || 'http://localhost:8070/',
};

但是当我尝试构建应用程序时,出现以下错误:

ERROR in src/environments/environment.ts(7,16): error TS2304: Cannot find name 'process'.

在构建应用程序时,如何根据环境变量设置 API-Url?


Update

根据下面的评论,原始答案并不完全清楚 - Angular 是使用 Angular CLI 构建的,这是一个节点应用程序,但您无法访问process.env在构建过程中直接从应用程序内部,因为它不是处理作为节点应用程序。

这些概念几乎保持不变,但理解上述内容很重要。

Original

您将无权访问process.env在 Angular 代码的编译时。

process.env可供Node应用程序,而 Angular 应用程序则不然。

您有多种选择:

  1. 如果确实需要动态,请在构建管道中执行某种任务,以使用正确的值更新环境文件。

  2. 只需对其进行硬编码并制作几个环境文件来匹配您的每个环境。您可以在 angular-cli.json 中指定您的环境。

选项 2 听起来可能适合您。在这种情况下,您需要将其放入 angular-cli.json 中:

"environments": {
    "dev": "path/to/dev/env",
    "prod": "path/to/prod/env"
}

并使用以下内容构建您的应用程序ng build --env=prod.

以下是更深入的信息:https://alligator.io/angular/environment-variables/ https://alligator.io/angular/environment-variables/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Angular 5 环境中使用 process.env 的相关文章

随机推荐