diff --git a/packages/angular/cli/commands/update-impl.ts b/packages/angular/cli/commands/update-impl.ts index adb0bfae2add..26a75af269a2 100644 --- a/packages/angular/cli/commands/update-impl.ts +++ b/packages/angular/cli/commands/update-impl.ts @@ -665,7 +665,21 @@ export class UpdateCommand extends Command { `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());