From 05358ae6cf9169bec4abb97954e69fc5b556608e Mon Sep 17 00:00:00 2001 From: Craigory Coppola Date: Tue, 5 Apr 2022 15:54:54 -0400 Subject: [PATCH] fix(core): infer packages from workspaces.packages properly (#9686) --- packages/nx/src/config/workspaces.ts | 11 ++++++++--- packages/nx/src/utils/package-json.ts | 5 +++++ 2 files changed, 13 insertions(+), 3 deletions(-) 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;