diff --git a/.gitignore b/.gitignore index cc0280e30214..532d2b89fba2 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,6 @@ tmp/ # Mac OSX Finder files. **/.DS_Store .DS_Store + +# vim +*.swp diff --git a/packages/@angular/cli/lib/config/schema.json b/packages/@angular/cli/lib/config/schema.json index 57467fb1c48e..ba32b78a4777 100644 --- a/packages/@angular/cli/lib/config/schema.json +++ b/packages/@angular/cli/lib/config/schema.json @@ -182,7 +182,11 @@ "description": "Name and corresponding file for environment config.", "type": "object", "additionalProperties": true - } + }, + "webpackTarget": { + "description": "To specify the target property of webpack config.", + "type": "string" + } }, "additionalProperties": false }, diff --git a/packages/@angular/cli/models/webpack-config.ts b/packages/@angular/cli/models/webpack-config.ts index a97709499a2e..2576b54046fd 100644 --- a/packages/@angular/cli/models/webpack-config.ts +++ b/packages/@angular/cli/models/webpack-config.ts @@ -8,7 +8,8 @@ import { getProdConfig, getStylesConfig, getNonAotConfig, - getAotConfig + getAotConfig, + getUnofficialConfig } from './webpack-configs'; const path = require('path'); @@ -41,6 +42,7 @@ export class NgCliWebpackConfig { getCommonConfig(this.wco), getBrowserConfig(this.wco), getStylesConfig(this.wco), + getUnofficialConfig(this.wco), this.getTargetConfig(this.wco) ]; @@ -107,7 +109,8 @@ export class NgCliWebpackConfig { const appConfigDefaults: any = { testTsconfig: appConfig.tsconfig, scripts: [], - styles: [] + styles: [], + webpackTarget: 'web' }; // can't use Object.assign here because appConfig has a lot of getters/setters diff --git a/packages/@angular/cli/models/webpack-configs/index.ts b/packages/@angular/cli/models/webpack-configs/index.ts index 7c985a1e093d..a2babea6449a 100644 --- a/packages/@angular/cli/models/webpack-configs/index.ts +++ b/packages/@angular/cli/models/webpack-configs/index.ts @@ -5,5 +5,6 @@ export * from './production'; export * from './styles'; export * from './test'; export * from './typescript'; +export * from './unoffical'; export * from './utils'; export * from './xi18n'; diff --git a/packages/@angular/cli/models/webpack-configs/unoffical.ts b/packages/@angular/cli/models/webpack-configs/unoffical.ts new file mode 100644 index 000000000000..e40ca70eb9db --- /dev/null +++ b/packages/@angular/cli/models/webpack-configs/unoffical.ts @@ -0,0 +1,9 @@ +import { WebpackConfigOptions } from '../webpack-config'; + +export function getUnofficialConfig(wco: WebpackConfigOptions) { + const { appConfig } = wco; + + return { + target: appConfig.webpackTarget + } +} diff --git a/packages/@ngtools/json-schema/tests/serializer/schema3.json b/packages/@ngtools/json-schema/tests/serializer/schema3.json index cf863abc8506..33416ac80e61 100644 --- a/packages/@ngtools/json-schema/tests/serializer/schema3.json +++ b/packages/@ngtools/json-schema/tests/serializer/schema3.json @@ -112,6 +112,10 @@ "description": "Name and corresponding file for environment config.", "type": "object", "additionalProperties": true + }, + "webpackTarget": { + "description": "To specify the target property of webpack config.", + "type": "string" } }, "additionalProperties": false diff --git a/packages/@ngtools/json-schema/tests/serializer/value3.d.ts b/packages/@ngtools/json-schema/tests/serializer/value3.d.ts index 150edbc203ee..640d80ff82b4 100644 --- a/packages/@ngtools/json-schema/tests/serializer/value3.d.ts +++ b/packages/@ngtools/json-schema/tests/serializer/value3.d.ts @@ -39,6 +39,10 @@ interface _ { environments?: { [name: string]: any; }; + /** + * To specify the target property of webpack config. + */ + webpackTarget?: string; }[]; /** * Configuration reserved for installed third party addons.