【问题标题】:Angular 6 difference between .env vs environment.ts.env 与 environment.ts 之间的 Angular 6 区别
【发布时间】:2019-08-28 12:11:51
【问题描述】:

我从https://mean.io 生成了一个项目。但我不确定 (.env and .env.example) 和 (environment.ts and environment.prod.ts) 之间有什么区别。

我应该在哪里存储我的所有配置数据、机密和密钥?

【问题讨论】:

    标签: angular environment-variables angular6


    【解决方案1】:

    您应该将它们存储在 environment.ts 中

    environment.ts 如果您在 Angular 项目中引用环境对象属性,则在开发模式期间,即 ng serve 或 ng build 应从此文件中读取所有值。

    environment.prod.ts 在这种情况下,当您使用 ng build --prod 为生产模式构建应用程序时, environment.ts 文件的所有值都将被 environment.prod.ts 文件覆盖。

    上述变量与您的 Angular 应用程序有关。而 .env 和 .env.example 用于 Laravel 应用程序。

    .env 应该是不受版本控制的,当您将项目推送到任何存储库时会被忽略。这是为了您自己的安全。

    .env.example 包含非常通用的信息,在全新安装时被复制为 .env 并进行了一些更改。前 APP_KE

    【讨论】:

    • 那么 .env 和 .env.example 是干什么用的?
    • 那是给 laravel 应用的。与角度无关
    • 发帖者提供的 Github 项目没有任何 Laravel 应用的引用。 .env 文件用于替换 node express API 中的环境变量。
    【解决方案2】:

    environment.tsenvironment.prod.ts 在您的 Angular 应用程序中用于根据应用程序运行的位置加载不同的变量。

    ng serve 将使用environemnt.ts 文件运行应用程序。 ng serve --prod 将使用 environment.prod.ts 文件运行应用程序。

    API url 就是一个很好的例子。在开发中,您将使用http//:localhost:<port>,而在生产中,url 可能是www.<my-api>.com,您可以使用不同的环境文件在构建之间进行这些切换。

    请记住,您网站上的任何用户都可以读取角度环境文件。将用户名、密码或 api 密钥保存在 environment.tsenvironment.prod.ts 文件中是个坏主意。

    .env 文件用于存储 node/express API 的环境变量。此代码在服务器上运行。 server/config/config.js 文件中的 require('dotenv').config(); 行是加载文件的位置。 Dotenv 将使用 .env 文件填充使用 process.env.<My_Environment_Variable_Name> 访问的环境变量。

    【讨论】:

      猜你喜欢
      • 2018-06-07
      • 2018-10-07
      • 2018-11-15
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      • 1970-01-01
      • 2018-11-16
      • 2018-08-27
      相关资源
      最近更新 更多