Skip to content

Commit c9c449b

Browse files
committed
feat(@angular/cli): use environmentSource key for environments
Heavily based on @ jsanchezgarcia work in angular#4476. Fix angular#3857 BREAKING CHANGE: A new environmentSource 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" } ```
1 parent 4543be9 commit c9c449b

File tree

6 files changed

+12
-7
lines changed

6 files changed

+12
-7
lines changed

docs/documentation/build.md

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

2424
```json
25+
"environmentSource": "environments/environment.ts",
2526
"environments": {
26-
"source": "environments/environment.ts",
2727
"dev": "environments/environment.ts",
2828
"prod": "environments/environment.prod.ts"
2929
}

docs/documentation/overview.md

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

3131
```json
32+
"environmentSource": "environments/environment.ts",
3233
"environments": {
33-
"source": "environments/environment.ts",
3434
"dev": "environments/environment.ts",
3535
"prod": "environments/environment.prod.ts"
3636
}

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
"styles.<%= styleExt %>"
2323
],
2424
"scripts": [],
25+
"environmentSource": "environments/environment.ts",
2526
"environments": {
26-
"source": "environments/environment.ts",
2727
"dev": "environments/environment.ts",
2828
"prod": "environments/environment.prod.ts"
2929
}

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

+4
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,10 @@
132132
},
133133
"additionalProperties": false
134134
},
135+
"environmentSource":{
136+
"description": "Source file for environment config.",
137+
"type": "string"
138+
},
135139
"environments": {
136140
"description": "Name and corresponding file for environment config.",
137141
"type": "object",

packages/@angular/cli/models/webpack-configs/test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ const getTestConfig = function (projectRoot, environment, appConfig, testConfig)
103103
// This plugin is responsible for swapping the environment files.
104104
// Since it takes a RegExp as first parameter, we need to escape the path.
105105
// See https://webpack.github.io/docs/list-of-plugins.html#normalmodulereplacementplugin
106-
new RegExp(path.resolve(appRoot, appConfig.environments['source'])
106+
new RegExp(path.resolve(appRoot, appConfig.environmentSource)
107107
.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&')),
108108
path.resolve(appRoot, appConfig.environments[environment])
109109
),

packages/@angular/cli/models/webpack-configs/typescript.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,16 @@ function _createAotPlugin(wco: WebpackConfigOptions, options: any) {
1919
let hostOverrideFileSystem: any = {};
2020
// process environment file replacement
2121
if (appConfig.environments) {
22-
if (!('source' in appConfig.environments)) {
23-
throw new SilentError(`Environment configuration does not contain "source" entry.`);
22+
if (appConfig.environmentSource) {
23+
throw new SilentError(
24+
'Environment configuration does not contain "environmentSource" entry.');
2425
}
2526
if (!(buildOptions.environment in appConfig.environments)) {
2627
throw new SilentError(`Environment "${buildOptions.environment}" does not exist.`);
2728
}
2829

2930
const appRoot = path.resolve(projectRoot, appConfig.root);
30-
const sourcePath = appConfig.environments['source'];
31+
const sourcePath = appConfig.environmentSource;
3132
const envFile = appConfig.environments[buildOptions.environment];
3233
const environmentContent = fs.readFileSync(path.join(appRoot, envFile)).toString();
3334

0 commit comments

Comments
 (0)