diff --git a/packages/angular/src/utils/get-generator-directory-for-ng-version.ts b/packages/angular/src/utils/get-generator-directory-for-ng-version.ts index dab9ffc2a86da..f83492d66f43b 100644 --- a/packages/angular/src/utils/get-generator-directory-for-ng-version.ts +++ b/packages/angular/src/utils/get-generator-directory-for-ng-version.ts @@ -1,6 +1,6 @@ import type { Tree } from '@nrwl/devkit'; import { readJson } from '@nrwl/devkit'; -import { coerce, major } from 'semver'; +import { coerce, clean, major } from 'semver'; export function getGeneratorDirectoryForInstalledAngularVersion(tree: Tree) { const pkgJson = readJson(tree, 'package.json'); @@ -15,7 +15,9 @@ export function getGeneratorDirectoryForInstalledAngularVersion(tree: Tree) { return null; } - const majorAngularVersion = major(coerce(angularVersion)); + const majorAngularVersion = major( + clean(angularVersion) ?? coerce(angularVersion) + ); const directoryDictionary = { 14: 'angular-v14', diff --git a/packages/devkit/src/utils/package-json.ts b/packages/devkit/src/utils/package-json.ts index 1b4d5e451454b..9cbb775c3a48c 100644 --- a/packages/devkit/src/utils/package-json.ts +++ b/packages/devkit/src/utils/package-json.ts @@ -2,7 +2,7 @@ import { readJson, updateJson } from 'nx/src/generators/utils/json'; import { installPackagesTask } from '../tasks/install-packages-task'; import type { Tree } from 'nx/src/generators/tree'; import { GeneratorCallback } from 'nx/src/config/misc-interfaces'; -import { coerce, gt, satisfies } from 'semver'; +import { clean, coerce, gt, satisfies } from 'semver'; import { getPackageManagerCommand } from 'nx/src/utils/package-manager'; import { execSync } from 'child_process'; @@ -27,6 +27,10 @@ function filterExistingDependencies( .reduce((acc, d) => ({ ...acc, [d]: dependencies[d] }), {}); } +function cleanSemver(version: string) { + return clean(version) ?? coerce(version); +} + function isIncomingVersionGreater( incomingVersion: string, existingVersion: string @@ -45,7 +49,7 @@ function isIncomingVersionGreater( return true; } - return gt(coerce(incomingVersion), coerce(existingVersion)); + return gt(cleanSemver(incomingVersion), cleanSemver(existingVersion)); } function updateExistingDependenciesVersion(