feat(ngcc): lock ngcc when processing (#34722)
Previously, it was possible for multiple instance of ngcc to be running at the same time, but this is not supported and can cause confusing and flakey errors at build time. Now, only one instance of ngcc can run at a time. If a second instance tries to execute it fails with an appropriate error message. See https://github.com/angular/angular/issues/32431#issuecomment-571825781 PR Close #34722
This commit is contained in:

committed by
Andrew Kushnir

parent
d243d851a5
commit
6dd51f1cc2
@ -13,6 +13,7 @@ import * as os from 'os';
|
||||
import {AbsoluteFsPath, FileSystem, absoluteFrom, getFileSystem, join} from '../../../src/ngtsc/file_system';
|
||||
import {Folder, MockFileSystem, TestFile, runInEachFileSystem} from '../../../src/ngtsc/file_system/testing';
|
||||
import {loadStandardTestFiles, loadTestFiles} from '../../../test/helpers';
|
||||
import {LockFile} from '../../src/execution/lock_file';
|
||||
import {mainNgcc} from '../../src/main';
|
||||
import {markAsProcessed} from '../../src/packages/build_marker';
|
||||
import {EntryPointJsonProperty, EntryPointPackageJson, SUPPORTED_FORMAT_PROPERTIES} from '../../src/packages/entry_point';
|
||||
@ -1319,6 +1320,7 @@ runInEachFileSystem(() => {
|
||||
function initMockFileSystem(fs: FileSystem, testFiles: Folder) {
|
||||
if (fs instanceof MockFileSystem) {
|
||||
fs.init(testFiles);
|
||||
fs.ensureDir(fs.dirname(new LockFile(fs).lockFilePath));
|
||||
}
|
||||
|
||||
// a random test package that no metadata.json file so not compiled by Angular.
|
||||
|
Reference in New Issue
Block a user