如何将环境文件传递给服务?

时间:2017-12-14 16:32:06

标签: angular

我有3个不同的环境文件 environment.dev.ts environment.prod.ts environment.stages.ts 要更改将使用的文件,例如,我将--env=prod传递到我的webpack.config.ts中。它工作正常。但我也有一个服务,我需要导入像import { environment } from '../environments/environment.dev';这样的环境文件。当我在控制台中启动webpack并键入--env=dev' I need to pass environments.dev.ts into my service; if I type - env = prod'时,它应该是我服务中的environments.prod.ts。我该怎么办呢?也许有更好的方法来解决我的问题(我需要更改不同捆绑的URL)。此时url包含在我的环境文件中。

更新 我找到解决方案。如果在ng eject添加到webpack.config.js后使用webpack命令构建应用程序并更改环境 var NODE_ENV; econst environmentFiles = {   'dev': 'environments/environment.dev.ts',   'prod': 'environments/environment.prod.ts',   'local': 'environments/environment.local.ts' };
进入module.exports添加
module.exports = function(env) {  NODE_ENV = env; ... }

"hostReplacementPaths": {   "environments/environment.ts": environmentFiles[NODE_ENV] },
进入AngularCompilerPlugin。 你可以运行
webpack build --env='name_of_your_environment'它将更改environment.ts文件

1 个答案:

答案 0 :(得分:0)

如果使用CLI生成应用程序,则默认情况下,您的开发环境将使用environment.tsenvironment.prod.ts用于生产环境。

如果您想添加更多环境,请查看.angular-cli.json

"environmentSource": "environments/environment.ts",
"environments": {
    "dev": "environments/environment.ts",
    "prod": "environments/environment.prod.ts"
 }

如果需要,您可以定义更多envs