feat(ngcc): support invalidating the entry-point manifest (#35931)

In some scenarios it is useful for the developer to indicate
to ngcc that it should not use the entry-point manifest
file, and instead write a new one.

In the ngcc command line tool, this option is set by specfying

```
--invalidate-entry-point-manifest
```

PR Close #35931
This commit is contained in:
Pete Bacon Darwin
2020-03-10 10:49:17 +00:00
committed by Andrew Kushnir
parent ec9f4d5bc6
commit 8ea61a19cd
4 changed files with 82 additions and 12 deletions

View File

@ -76,6 +76,13 @@ if (require.main === module) {
describe: 'The lowest severity logging message that should be output.',
choices: ['debug', 'info', 'warn', 'error'],
})
.option('invalidate-entry-point-manifest', {
describe:
'If this is set then ngcc will not read an entry-point manifest file from disk.\n' +
'Instead it will walk the directory tree as normal looking for entry-points, and then write a new manifest file.',
type: 'boolean',
default: false,
})
.strict()
.help()
.parse(args);
@ -95,6 +102,7 @@ if (require.main === module) {
const createNewEntryPointFormats = options['create-ivy-entry-points'];
const logLevel = options['l'] as keyof typeof LogLevel | undefined;
const enableI18nLegacyMessageIdFormat = options['legacy-message-ids'];
const invalidateEntryPointManifest = options['invalidate-entry-point-manifest'];
(async() => {
try {
@ -108,7 +116,7 @@ if (require.main === module) {
createNewEntryPointFormats,
logger,
enableI18nLegacyMessageIdFormat,
async: options['async'],
async: options['async'], invalidateEntryPointManifest,
});
if (logger) {