From 4547e45ba32fffbd37a473de2f58e82e4f44f4c7 Mon Sep 17 00:00:00 2001 From: Michael Gerace Date: Mon, 26 Sep 2022 11:34:05 -0700 Subject: [PATCH 1/4] feat: check for workspaces in package.json --- packages/find-workspace-dir/package.json | 1 + packages/find-workspace-dir/src/index.ts | 10 ++++++++++ packages/find-workspace-dir/tsconfig.json | 3 +++ pnpm-lock.yaml | 3 +++ 4 files changed, 17 insertions(+) diff --git a/packages/find-workspace-dir/package.json b/packages/find-workspace-dir/package.json index ab1b083e2da..f09d6a9ac29 100644 --- a/packages/find-workspace-dir/package.json +++ b/packages/find-workspace-dir/package.json @@ -30,6 +30,7 @@ "homepage": "https://github.com/pnpm/pnpm/blob/main/packages/find-workspace-dir#readme", "dependencies": { "@pnpm/error": "workspace:*", + "@pnpm/graceful-fs": "workspace:*", "find-up": "^5.0.0" }, "funding": "https://opencollective.com/pnpm", diff --git a/packages/find-workspace-dir/src/index.ts b/packages/find-workspace-dir/src/index.ts index a6e7e4b2b01..3cc848b8dd9 100644 --- a/packages/find-workspace-dir/src/index.ts +++ b/packages/find-workspace-dir/src/index.ts @@ -2,6 +2,7 @@ import fs from 'fs' import path from 'path' import PnpmError from '@pnpm/error' import findUp from 'find-up' +import gfs from '@pnpm/graceful-fs' const WORKSPACE_DIR_ENV_VAR = 'NPM_CONFIG_WORKSPACE_DIR' const WORKSPACE_MANIFEST_FILENAME = 'pnpm-workspace.yaml' @@ -14,6 +15,15 @@ export default async function findWorkspaceDir (cwd: string) { if (workspaceManifestLocation?.endsWith('.yml')) { throw new PnpmError('BAD_WORKSPACE_MANIFEST_NAME', `The workspace manifest file should be named "pnpm-workspace.yaml". File found: ${workspaceManifestLocation}`) } + const packageManifestFile = workspaceManifestDirEnvVar + ? path.join(workspaceManifestDirEnvVar, 'package.json') + : await findUp([WORKSPACE_MANIFEST_FILENAME, 'package.json'], { cwd: await getRealPath(cwd) }) + const packageManifest = JSON.parse(await gfs.readFile(packageManifestFile!, 'utf-8')) + + if (packageManifest?.workspaces?.length) { + throw new PnpmError('BAD_PACKAGE_JSON_WORKSPACES', 'The root package.json file should not have workspaces defined with pnpm. Remove and use "pnpm-workspace.yaml" instead!') + } + return workspaceManifestLocation && path.dirname(workspaceManifestLocation) } diff --git a/packages/find-workspace-dir/tsconfig.json b/packages/find-workspace-dir/tsconfig.json index b2232f7e304..783b63d3050 100644 --- a/packages/find-workspace-dir/tsconfig.json +++ b/packages/find-workspace-dir/tsconfig.json @@ -11,6 +11,9 @@ "references": [ { "path": "../error" + }, + { + "path": "../graceful-fs" } ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 35b9bf291eb..d35771a39ac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1325,6 +1325,9 @@ importers: '@pnpm/error': specifier: workspace:* version: link:../error + '@pnpm/graceful-fs': + specifier: workspace:* + version: link:../graceful-fs find-up: specifier: ^5.0.0 version: 5.0.0 From 7a9572a231a6eb76bca927f4bcc44506c0866778 Mon Sep 17 00:00:00 2001 From: Michael Gerace Date: Mon, 26 Sep 2022 11:37:57 -0700 Subject: [PATCH 2/4] chore: bump port --- packages/plugin-commands-rebuild/package.json | 2 +- packages/plugin-commands-script-runners/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/plugin-commands-rebuild/package.json b/packages/plugin-commands-rebuild/package.json index ade952c85c2..41a3e8ad56a 100644 --- a/packages/plugin-commands-rebuild/package.json +++ b/packages/plugin-commands-rebuild/package.json @@ -16,7 +16,7 @@ "registry-mock": "registry-mock", "test:jest": "jest", "test:e2e": "registry-mock prepare && run-p -r registry-mock test:jest", - "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7779 pnpm run test:e2e", + "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7780 pnpm run test:e2e", "test": "pnpm run compile && pnpm run _test", "prepublishOnly": "pnpm run compile", "compile": "tsc --build && pnpm run lint --fix" diff --git a/packages/plugin-commands-script-runners/package.json b/packages/plugin-commands-script-runners/package.json index 5ccf65cd56b..d33a2b15b87 100644 --- a/packages/plugin-commands-script-runners/package.json +++ b/packages/plugin-commands-script-runners/package.json @@ -16,7 +16,7 @@ "registry-mock": "registry-mock", "test:jest": "jest", "test:e2e": "registry-mock prepare && run-p -r registry-mock test:jest", - "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7780 pnpm run test:e2e", + "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7779 pnpm run test:e2e", "test": "pnpm run compile && pnpm run _test", "prepublishOnly": "pnpm run compile", "start": "tsc --watch", From 6a45c17db1d5fd67bf6c40ddf4aef684f62ea6c2 Mon Sep 17 00:00:00 2001 From: Michael Gerace Date: Mon, 26 Sep 2022 11:39:42 -0700 Subject: [PATCH 3/4] chore: bump more --- packages/plugin-commands-rebuild/package.json | 2 +- packages/plugin-commands-script-runners/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/plugin-commands-rebuild/package.json b/packages/plugin-commands-rebuild/package.json index 41a3e8ad56a..ade952c85c2 100644 --- a/packages/plugin-commands-rebuild/package.json +++ b/packages/plugin-commands-rebuild/package.json @@ -16,7 +16,7 @@ "registry-mock": "registry-mock", "test:jest": "jest", "test:e2e": "registry-mock prepare && run-p -r registry-mock test:jest", - "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7780 pnpm run test:e2e", + "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7779 pnpm run test:e2e", "test": "pnpm run compile && pnpm run _test", "prepublishOnly": "pnpm run compile", "compile": "tsc --build && pnpm run lint --fix" diff --git a/packages/plugin-commands-script-runners/package.json b/packages/plugin-commands-script-runners/package.json index d33a2b15b87..5ccf65cd56b 100644 --- a/packages/plugin-commands-script-runners/package.json +++ b/packages/plugin-commands-script-runners/package.json @@ -16,7 +16,7 @@ "registry-mock": "registry-mock", "test:jest": "jest", "test:e2e": "registry-mock prepare && run-p -r registry-mock test:jest", - "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7779 pnpm run test:e2e", + "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7780 pnpm run test:e2e", "test": "pnpm run compile && pnpm run _test", "prepublishOnly": "pnpm run compile", "start": "tsc --watch", From 1149649bac98e511d5b0de72e27a7b5e58a5f147 Mon Sep 17 00:00:00 2001 From: Michael Gerace Date: Mon, 26 Sep 2022 11:41:01 -0700 Subject: [PATCH 4/4] chore: fix --- packages/plugin-commands-publishing/package.json | 2 +- packages/plugin-commands-rebuild/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/plugin-commands-publishing/package.json b/packages/plugin-commands-publishing/package.json index 9b03ad59416..59aae63b4f9 100644 --- a/packages/plugin-commands-publishing/package.json +++ b/packages/plugin-commands-publishing/package.json @@ -17,7 +17,7 @@ "registry-mock": "registry-mock", "test:jest": "jest", "test:e2e": "registry-mock prepare && run-p -r registry-mock test:jest", - "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7778 pnpm run test:e2e", + "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7779 pnpm run test:e2e", "test": "pnpm run compile && pnpm run _test", "prepublishOnly": "pnpm run compile", "compile": "tsc --build && pnpm run lint --fix" diff --git a/packages/plugin-commands-rebuild/package.json b/packages/plugin-commands-rebuild/package.json index ade952c85c2..c423696be23 100644 --- a/packages/plugin-commands-rebuild/package.json +++ b/packages/plugin-commands-rebuild/package.json @@ -16,7 +16,7 @@ "registry-mock": "registry-mock", "test:jest": "jest", "test:e2e": "registry-mock prepare && run-p -r registry-mock test:jest", - "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7779 pnpm run test:e2e", + "_test": "cross-env PNPM_REGISTRY_MOCK_PORT=7778 pnpm run test:e2e", "test": "pnpm run compile && pnpm run _test", "prepublishOnly": "pnpm run compile", "compile": "tsc --build && pnpm run lint --fix"