【发布时间】:2019-08-28 12:11:51
【问题描述】:
我从https://mean.io 生成了一个项目。但我不确定 (.env and .env.example) 和 (environment.ts and environment.prod.ts) 之间有什么区别。
我应该在哪里存储我的所有配置数据、机密和密钥?
【问题讨论】:
标签: angular environment-variables angular6
我从https://mean.io 生成了一个项目。但我不确定 (.env and .env.example) 和 (environment.ts and environment.prod.ts) 之间有什么区别。
我应该在哪里存储我的所有配置数据、机密和密钥?
【问题讨论】:
标签: angular environment-variables angular6
您应该将它们存储在 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
【讨论】:
environment.ts 和 environment.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.ts 或 environment.prod.ts 文件中是个坏主意。
.env 文件用于存储 node/express API 的环境变量。此代码在服务器上运行。 server/config/config.js 文件中的 require('dotenv').config(); 行是加载文件的位置。 Dotenv 将使用 .env 文件填充使用 process.env.<My_Environment_Variable_Name> 访问的环境变量。
【讨论】: