Skip to content

Commit

Permalink
fix(@angular/cli): support update migration packages with no entry po…
Browse files Browse the repository at this point in the history
…ints

Some schematic only packages may not have entry points defined (`main`/`exports`).  These type of packages will now be correctly resolved when attempting to locate update migrations.

Fixes #20032

(cherry picked from commit 3d99468)
  • Loading branch information
clydin authored and filipesilva committed Feb 17, 2021
1 parent 8629da4 commit cf00471
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion packages/angular/cli/commands/update-impl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -665,7 +665,21 @@ export class UpdateCommand extends Command<UpdateCommandSchema> {
`Resolving migration package '${migration.package}' from '${this.context.root}'...`,
);
try {
packagePath = require.resolve(migration.package, { paths: [this.context.root] });
try {
packagePath = path.dirname(
// This may fail if the `package.json` is not exported as an entry point
require.resolve(path.join(migration.package, 'package.json'), {
paths: [this.context.root],
}),
);
} catch (e) {
if (e.code === 'MODULE_NOT_FOUND') {
// Fallback to trying to resolve the package's main entry point
packagePath = require.resolve(migration.package, { paths: [this.context.root] });
} else {
throw e;
}
}
} catch (e) {
if (e.code === 'MODULE_NOT_FOUND') {
logVerbose(e.toString());
Expand Down

0 comments on commit cf00471

Please sign in to comment.