-
Notifications
You must be signed in to change notification settings - Fork 11.9k
Expand file tree
/
Copy pathrebuild-dot-dirname.ts
More file actions
63 lines (53 loc) · 2.12 KB
/
rebuild-dot-dirname.ts
File metadata and controls
63 lines (53 loc) · 2.12 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import { setTimeout } from 'node:timers/promises';
import { getGlobalVariable } from '../../utils/env';
import { appendToFile, createDir, rimraf } from '../../utils/fs';
import { installWorkspacePackages } from '../../utils/packages';
import { killAllProcesses, ng, waitForAnyProcessOutputToMatch } from '../../utils/process';
import { ngServe, updateJsonFile, useSha } from '../../utils/project';
const goodRegEx = getGlobalVariable('argv')['esbuild']
? /Application bundle generation complete\./
: / Compiled successfully\./;
export default async function () {
const originalCwd = process.cwd();
// Delete angular.json so that we can create a new app.
await rimraf('angular.json');
await createDir('./.subdirectory');
try {
process.chdir('./.subdirectory');
await ng('new', 'subdirectory-test-project', '--skip-install');
process.chdir('./subdirectory-test-project');
await useSha();
await installWorkspacePackages();
const useWebpackBuilder = !getGlobalVariable('argv')['esbuild'];
if (useWebpackBuilder) {
await updateJsonFile('angular.json', (json) => {
const build = json['projects']['subdirectory-test-project']['architect']['build'];
build.builder = '@angular-devkit/build-angular:browser';
build.options = {
...build.options,
main: build.options.browser,
browser: undefined,
outputPath: 'dist/subdirectory-test-project',
index: 'src/index.html',
};
build.configurations.development = {
...build.configurations.development,
vendorChunk: true,
namedChunks: true,
buildOptimizer: false,
};
const serve = json['projects']['subdirectory-test-project']['architect']['serve'];
serve.builder = '@angular-devkit/build-angular:dev-server';
});
}
await ngServe();
// Wait before editing a file.
await setTimeout(1000);
await appendToFile('src/main.ts', 'console.log(1);');
await waitForAnyProcessOutputToMatch(goodRegEx);
} finally {
process.chdir(originalCwd);
await killAllProcesses();
await setTimeout(100);
}
}