Skip to content
This repository was archived by the owner on May 1, 2020. It is now read-only.

Commit 7cb2672

Browse files
committed
refactor(config): set environment variables for minifyjs, minifycss, aot, and optimizejs
1 parent 8929265 commit 7cb2672

File tree

4 files changed

+80
-40
lines changed

4 files changed

+80
-40
lines changed

config/webpack.config.js

Lines changed: 50 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,55 @@ var ionicWebpackFactory = require(process.env.IONIC_WEBPACK_FACTORY);
1414
var ModuleConcatPlugin = require('webpack/lib/optimize/ModuleConcatenationPlugin');
1515
var PurifyPlugin = require('@angular-devkit/build-optimizer').PurifyPlugin;
1616

17+
var optimizedProdLoaders = [
18+
{
19+
test: /\.json$/,
20+
loader: 'json-loader'
21+
},
22+
{
23+
test: /\.js$/,
24+
loader: [
25+
{
26+
loader: process.env.IONIC_CACHE_LOADER
27+
},
28+
29+
{
30+
loader: '@angular-devkit/build-optimizer/webpack-loader',
31+
options: {
32+
sourceMap: true
33+
}
34+
},
35+
]
36+
},
37+
{
38+
test: /\.ts$/,
39+
loader: [
40+
{
41+
loader: process.env.IONIC_CACHE_LOADER
42+
},
43+
44+
{
45+
loader: '@angular-devkit/build-optimizer/webpack-loader',
46+
options: {
47+
sourceMap: true
48+
}
49+
},
50+
51+
{
52+
loader: process.env.IONIC_WEBPACK_LOADER
53+
}
54+
]
55+
}
56+
];
57+
58+
function getProdLoaders() {
59+
if (process.env.IONIC_OPTIMIZE_JS === 'true') {
60+
console.log('using prod loaders');
61+
return optimizedProdLoaders;
62+
}
63+
console.log('using dev loaders');
64+
return devConfig.module.loaders;
65+
}
1766

1867
var devConfig = {
1968
entry: process.env.IONIC_APP_ENTRY_POINT,
@@ -73,46 +122,7 @@ var prodConfig = {
73122
},
74123

75124
module: {
76-
loaders: [
77-
{
78-
test: /\.json$/,
79-
loader: 'json-loader'
80-
},
81-
{
82-
test: /\.js$/,
83-
loader: [
84-
{
85-
loader: process.env.IONIC_CACHE_LOADER
86-
},
87-
88-
{
89-
loader: '@angular-devkit/build-optimizer/webpack-loader',
90-
options: {
91-
sourceMap: true
92-
}
93-
},
94-
]
95-
},
96-
{
97-
test: /\.ts$/,
98-
loader: [
99-
{
100-
loader: process.env.IONIC_CACHE_LOADER
101-
},
102-
103-
{
104-
loader: '@angular-devkit/build-optimizer/webpack-loader',
105-
options: {
106-
sourceMap: true
107-
}
108-
},
109-
110-
{
111-
loader: process.env.IONIC_WEBPACK_LOADER
112-
}
113-
]
114-
}
115-
]
125+
loaders: getProdLoaders()
116126
},
117127

118128
plugins: [

src/util/config.spec.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ describe('config', () => {
6767
expect(context.optimizeJs).toEqual(false);
6868
expect(fakeConfig[Constants.ENV_VAR_IONIC_ENV]).toEqual(Constants.ENV_VAR_DEV);
6969

70+
expect(fakeConfig[Constants.ENV_VAR_IONIC_AOT]).toEqual('false');
71+
expect(fakeConfig[Constants.ENV_VAR_IONIC_MINIFY_JS]).toEqual('false');
72+
expect(fakeConfig[Constants.ENV_VAR_IONIC_MINIFY_CSS]).toEqual('false');
73+
expect(fakeConfig[Constants.ENV_VAR_IONIC_OPTIMIZE_JS]).toEqual('false');
74+
7075
expect(context.rootDir).toEqual(process.cwd());
7176
expect(context.tmpDir).toEqual(join(process.cwd(), Constants.TMP_DIR));
7277
expect(context.srcDir).toEqual(join(process.cwd(), Constants.SRC_DIR));
@@ -180,6 +185,10 @@ describe('config', () => {
180185
expect(context.runMinifyJs).toEqual(true);
181186
expect(context.runMinifyCss).toEqual(true);
182187
expect(context.optimizeJs).toEqual(true);
188+
expect(fakeConfig[Constants.ENV_VAR_IONIC_AOT]).toEqual('true');
189+
expect(fakeConfig[Constants.ENV_VAR_IONIC_MINIFY_JS]).toEqual('true');
190+
expect(fakeConfig[Constants.ENV_VAR_IONIC_MINIFY_CSS]).toEqual('true');
191+
expect(fakeConfig[Constants.ENV_VAR_IONIC_OPTIMIZE_JS]).toEqual('true');
183192
expect(fakeConfig[Constants.ENV_VAR_IONIC_ENV]).toEqual(Constants.ENV_VAR_PROD);
184193
expect(fakeConfig[Constants.ENV_VAR_GENERATE_SOURCE_MAP]).toBeFalsy();
185194
});

src/util/config.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,21 @@ export function generateContext(context?: BuildContext): BuildContext {
6262
context.isWatch = hasArg('--watch');
6363
}
6464

65+
setProcessEnvVar(Constants.ENV_VAR_IONIC_AOT, `${context.runAot}`);
66+
Logger.debug(`${Constants.ENV_VAR_IONIC_AOT} set to ${context.runAot}`);
67+
68+
setProcessEnvVar(Constants.ENV_VAR_IONIC_MINIFY_JS, `${context.runMinifyJs}`);
69+
Logger.debug(`${Constants.ENV_VAR_IONIC_MINIFY_JS} set to ${context.runMinifyJs}`);
70+
71+
setProcessEnvVar(Constants.ENV_VAR_IONIC_MINIFY_CSS, `${context.runMinifyCss}`);
72+
Logger.debug(`${Constants.ENV_VAR_IONIC_MINIFY_CSS} set to ${context.runMinifyCss}`);
73+
74+
setProcessEnvVar(Constants.ENV_VAR_IONIC_OPTIMIZE_JS, `${context.optimizeJs}`);
75+
Logger.debug(`${Constants.ENV_VAR_IONIC_OPTIMIZE_JS} set to ${context.optimizeJs}`);
76+
77+
setProcessEnvVar(Constants.ENV_VAR_IONIC_MINIFY_JS, `${context.runMinifyJs}`);
78+
Logger.debug(`${Constants.ENV_VAR_IONIC_MINIFY_JS} set to ${context.runMinifyJs}`);
79+
6580
context.rootDir = resolve(context.rootDir || getConfigValue(context, '--rootDir', null, Constants.ENV_VAR_ROOT_DIR, Constants.ENV_VAR_ROOT_DIR.toLowerCase(), processCwd));
6681
setProcessEnvVar(Constants.ENV_VAR_ROOT_DIR, context.rootDir);
6782
Logger.debug(`rootDir set to ${context.rootDir}`);

src/util/constants.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ export const CORDOVA = 'cordova';
2727
export const ENV_VAR_PROD = 'prod';
2828
export const ENV_VAR_DEV = 'dev';
2929
export const ENV_VAR_IONIC_ENV = 'IONIC_ENV';
30+
31+
export const ENV_VAR_IONIC_AOT = 'IONIC_AOT';
32+
export const ENV_VAR_IONIC_MINIFY_JS = 'IONIC_MINIFY_JS';
33+
export const ENV_VAR_IONIC_MINIFY_CSS = 'IONIC_MINIFY_CSS';
34+
export const ENV_VAR_IONIC_OPTIMIZE_JS = 'IONIC_OPTIMIZE_JS';
35+
3036
export const ENV_VAR_ROOT_DIR = 'IONIC_ROOT_DIR';
3137
export const ENV_VAR_SRC_DIR = 'IONIC_SRC_DIR';
3238
export const ENV_VAR_DEEPLINKS_DIR = 'IONIC_DEEPLINKS_DIR';

0 commit comments

Comments
 (0)