Skip to content

Commit 9d400b0

Browse files
refactor(build): replace source in environments with separate environmentDefault entry
Replace `source` in environments with separate `environmentDefault` entry and updated docs to reflect this change BREAKING CHANGE: angular-cli.json has changed. A new `environmentDefault` entry replaces the previous `source` entry inside `environments`. To migrate the code follow the example below: Before: "environments": { "source": "environments/environment.ts", "dev": "environments/environment.ts", "prod": "environments/environment.prod.ts" } After: "environmentSource": "environments/environment.ts", "environments": { "dev": "environments/environment.ts", "prod": "environments/environment.prod.ts" } Closes angular#3857
1 parent 39b9522 commit 9d400b0

File tree

5 files changed

+11
-6
lines changed

5 files changed

+11
-6
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ By default, the development build target and environment are used.
137137
The mapping used to determine which environment file is used can be found in `angular-cli.json`:
138138

139139
```json
140+
"environmentSource": "environments/environment.ts",
140141
"environments": {
141-
"source": "environments/environment.ts",
142142
"dev": "environments/environment.ts",
143143
"prod": "environments/environment.prod.ts"
144144
}

docs/documentation/overview.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ By default, the development build target and environment are used.
2727
The mapping used to determine which environment file is used can be found in `angular-cli.json`:
2828

2929
```json
30+
"environmentSource": "environments/environment.ts",
3031
"environments": {
31-
"source": "environments/environment.ts",
3232
"dev": "environments/environment.ts",
3333
"prod": "environments/environment.prod.ts"
3434
}

packages/angular-cli/blueprints/ng2/files/angular-cli.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
"styles.<%= styleExt %>"
2222
],
2323
"scripts": [],
24+
"environmentSource": "environments/environment.ts",
2425
"environments": {
25-
"source": "environments/environment.ts",
2626
"dev": "environments/environment.ts",
2727
"prod": "environments/environment.prod.ts"
2828
}

packages/angular-cli/lib/config/schema.d.ts

+4
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ export interface CliConfig {
2828
* Global scripts to be included in the build.
2929
*/
3030
scripts?: string[];
31+
/**
32+
* Environment source file.
33+
*/
34+
environmentSource?: string,
3135
/**
3236
* Name and corresponding file for environment config.
3337
*/

packages/angular-cli/models/webpack-build-common.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,9 @@ export function getWebpackCommonConfig(
102102

103103
// process environment file replacement
104104
if (appConfig.environments) {
105-
if (!('source' in appConfig.environments)) {
106-
throw new SilentError(`Environment configuration does not contain "source" entry.`);
105+
if (!('environmentSource' in appConfig.environments)) {
106+
throw new SilentError(`Environment configuration does not contain
107+
"environmentSource" entry.`);
107108
}
108109
if (!(environment in appConfig.environments)) {
109110
throw new SilentError(`Environment "${environment}" does not exist.`);
@@ -113,7 +114,7 @@ export function getWebpackCommonConfig(
113114
// This plugin is responsible for swapping the environment files.
114115
// Since it takes a RegExp as first parameter, we need to escape the path.
115116
// See https://webpack.github.io/docs/list-of-plugins.html#normalmodulereplacementplugin
116-
new RegExp(path.resolve(appRoot, appConfig.environments['source'])
117+
new RegExp(path.resolve(appRoot, appConfig['environmentSource'])
117118
.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&')),
118119
path.resolve(appRoot, appConfig.environments[environment])
119120
));

0 commit comments

Comments
 (0)