From a09e70a29150efa911212b9b2f004341e0df15bf Mon Sep 17 00:00:00 2001 From: Alon Valadji Date: Wed, 6 Mar 2024 15:53:46 +0200 Subject: [PATCH] fix(core): fix no such file or directory, open 'package-lock.json' (#21835) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Miroslav Jonaš --- .circleci/config.yml | 2 +- packages/nx/src/plugins/js/lock-file/lock-file.ts | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 99d9801fb6..d0a00735a3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -61,7 +61,7 @@ commands: name: Install Dependencies command: | pnpm install --frozen-lockfile - pnpm playwright install --with-deps firefox webkit chrome + pnpm playwright install --with-deps - save_cache: name: Save pnpm Package Cache key: node-deps-{{ arch }}-v3-{{ checksum "pnpm-lock.yaml" }} diff --git a/packages/nx/src/plugins/js/lock-file/lock-file.ts b/packages/nx/src/plugins/js/lock-file/lock-file.ts index 00165fe15a..10f91d44a3 100644 --- a/packages/nx/src/plugins/js/lock-file/lock-file.ts +++ b/packages/nx/src/plugins/js/lock-file/lock-file.ts @@ -143,6 +143,19 @@ export function getLockFileName(packageManager: PackageManager): string { throw new Error(`Unknown package manager: ${packageManager}`); } +function getLockFilePath(packageManager: PackageManager): string { + if (packageManager === 'yarn') { + return YARN_LOCK_PATH; + } + if (packageManager === 'pnpm') { + return PNPM_LOCK_PATH; + } + if (packageManager === 'npm') { + return NPM_LOCK_PATH; + } + throw new Error(`Unknown package manager: ${packageManager}`); +} + /** * Create lock file based on the root level lock file and (pruned) package.json * @@ -157,7 +170,7 @@ export function createLockFile( packageManager: PackageManager = detectPackageManager(workspaceRoot) ): string { const normalizedPackageJson = normalizePackageJson(packageJson); - const content = readFileSync(getLockFileName(packageManager), 'utf8'); + const content = readFileSync(getLockFilePath(packageManager), 'utf8'); try { if (packageManager === 'yarn') {