diff --git a/packages/nx/src/config/workspaces.ts b/packages/nx/src/config/workspaces.ts index 32df94828d630..7f637a89fbe5b 100644 --- a/packages/nx/src/config/workspaces.ts +++ b/packages/nx/src/config/workspaces.ts @@ -21,6 +21,7 @@ import { TaskGraphExecutor, Generator, } from './misc-interfaces'; +import { PackageJson } from '../utils/package-json'; export function workspaceConfigName(root: string) { if (existsSync(path.join(root, 'angular.json'))) { @@ -471,10 +472,14 @@ function getGlobPatternsFromPlugins(nxJson: NxJsonConfiguration): string[] { function getGlobPatternsFromPackageManagerWorkspaces(root: string): string[] { // TODO: add support for pnpm try { - const { workspaces } = readJsonFile(join(root, 'package.json')); - + const { workspaces } = readJsonFile( + join(root, 'package.json') + ); + const packages = Array.isArray(workspaces) + ? workspaces + : workspaces?.packages; return ( - workspaces?.map((pattern) => pattern + '/package.json') ?? [ + packages?.map((pattern) => pattern + '/package.json') ?? [ '**/package.json', ] ); diff --git a/packages/nx/src/utils/package-json.ts b/packages/nx/src/utils/package-json.ts index b4f3cb2678208..f97cb522335bb 100644 --- a/packages/nx/src/utils/package-json.ts +++ b/packages/nx/src/utils/package-json.ts @@ -16,6 +16,11 @@ export interface PackageJson { dependencies?: Record; devDependencies?: Record; peerDependencies?: Record; + workspaces?: + | string[] + | { + packages: string[]; + }; // Nx Project Configuration nx?: NxProjectPackageJsonConfiguration;