-
Notifications
You must be signed in to change notification settings - Fork 11.9k
Expand file tree
/
Copy pathjit-ngmodule.ts
More file actions
48 lines (41 loc) · 1.69 KB
/
jit-ngmodule.ts
File metadata and controls
48 lines (41 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import { getGlobalVariable } from '../../utils/env';
import { ng } from '../../utils/process';
import { updateJsonFile, useCIDefaults } from '../../utils/project';
import { executeBrowserTest } from '../../utils/puppeteer';
export default async function () {
await ng('generate', 'app', 'test-project-two', '--no-standalone', '--skip-install');
await useCIDefaults('test-project-two');
// Make prod use JIT.
const useWebpackBuilder = !getGlobalVariable('argv')['esbuild'];
// Setup webpack builder if esbuild is not requested on the commandline
await updateJsonFile('angular.json', (json) => {
const build = json['projects']['test-project-two']['architect']['build'];
if (useWebpackBuilder) {
build.builder = '@angular-devkit/build-angular:browser';
build.options = {
...build.options,
main: build.options.browser,
browser: undefined,
buildOptimizer: false,
outputPath: 'dist/test-project-two',
index: 'src/index.html',
};
build.configurations.development = {
...build.configurations.development,
vendorChunk: true,
namedChunks: true,
};
}
// Remove bundle budgets due to the increased size from JIT
build.configurations.production = {
...build.configurations.production,
budgets: undefined,
};
build.options.aot = false;
const serve = json['projects']['test-project-two']['architect']['serve'];
serve.builder = '@angular-devkit/build-angular:dev-server';
});
// Test it works
await executeBrowserTest({ project: 'test-project-two', configuration: 'production' });
await executeBrowserTest({ project: 'test-project-two', configuration: 'development' });
}