Skip to content

Commit cc8a53e

Browse files
refactor(build): replace source in environments with 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 cc8a53e

File tree

5 files changed

+23
-8
lines changed

5 files changed

+23
-8
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/lib/config/schema.d.ts

+13-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export interface CliConfig {
1212
apps?: {
1313
root?: string;
1414
outDir?: string;
15-
assets?: string;
15+
assets?: string | string[];
1616
deployUrl?: string;
1717
index?: string;
1818
main?: string;
@@ -23,11 +23,21 @@ export interface CliConfig {
2323
/**
2424
* Global styles to be included in the build.
2525
*/
26-
styles?: string[];
26+
styles?: (string | {
27+
[name: string]: any;
28+
input?: string;
29+
})[];
2730
/**
2831
* Global scripts to be included in the build.
2932
*/
30-
scripts?: string[];
33+
scripts?: (string | {
34+
[name: string]: any;
35+
input?: string;
36+
})[];
37+
/**
38+
* Source file for environment config.
39+
*/
40+
environmentSource?: string;
3141
/**
3242
* Name and corresponding file for environment config.
3343
*/

packages/angular-cli/lib/config/schema.json

+5
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,11 @@
110110
},
111111
"additionalProperties": false
112112
},
113+
"environmentSource": {
114+
"description": "Source file for environment config.",
115+
"type": "string",
116+
"additionalProperties": true
117+
},
113118
"environments": {
114119
"description": "Name and corresponding file for environment config.",
115120
"type": "object",

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ 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 (!appConfig.environmentSource) {
106+
throw new SilentError(`Environment configuration does not contain "environmentSource" entry.`);
107107
}
108108
if (!(environment in appConfig.environments)) {
109109
throw new SilentError(`Environment "${environment}" does not exist.`);
@@ -113,7 +113,7 @@ export function getWebpackCommonConfig(
113113
// This plugin is responsible for swapping the environment files.
114114
// Since it takes a RegExp as first parameter, we need to escape the path.
115115
// See https://webpack.github.io/docs/list-of-plugins.html#normalmodulereplacementplugin
116-
new RegExp(path.resolve(appRoot, appConfig.environments['source'])
116+
new RegExp(path.resolve(appRoot, appConfig['environmentSource'])
117117
.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&')),
118118
path.resolve(appRoot, appConfig.environments[environment])
119119
));

0 commit comments

Comments
 (0)