我有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文件
答案 0 :(得分:0)
如果使用CLI生成应用程序,则默认情况下,您的开发环境将使用environment.ts
和environment.prod.ts
用于生产环境。
如果您想添加更多环境,请查看.angular-cli.json
:
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
如果需要,您可以定义更多envs