From 3971dd0c1d919c007d7e3c35d9fec12b924e05d9 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Thu, 9 Jul 2026 12:56:09 +0200 Subject: [PATCH] chore: fix `set-react-version` when run outside package `yarn workspace ...` changes the working directory so it only modified files inside the main package. --- packages/app/example/package.json | 1 - .../app/scripts/internal/set-react-version.mts | 16 +++++++++++----- packages/app/scripts/types.ts | 2 +- packages/example-macos/package.json | 3 +-- packages/example-windows/package.json | 3 +-- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/app/example/package.json b/packages/app/example/package.json index 17344405d..d82943884 100644 --- a/packages/app/example/package.json +++ b/packages/app/example/package.json @@ -10,7 +10,6 @@ "build:visionos": "rnx-cli bundle --platform ios", "build:windows": "rnx-cli bundle --platform windows", "ci:windows": "rnx-cli run-windows --logging --no-packager --no-launch --no-deploy --msbuildprops UseBundle=false --no-telemetry", - "clean": "yarn workspace react-native-test-app clean", "ios": "rnx-cli run --platform ios", "macos": "rnx-cli run --platform macos", "set-react-version": "yarn workspace react-native-test-app set-react-version", diff --git a/packages/app/scripts/internal/set-react-version.mts b/packages/app/scripts/internal/set-react-version.mts index f4daa71bf..d4a12384c 100644 --- a/packages/app/scripts/internal/set-react-version.mts +++ b/packages/app/scripts/internal/set-react-version.mts @@ -290,8 +290,12 @@ export async function setReactVersion( "../../package.json", ]; for (const manifestPath of manifests) { + if (!fs.existsSync(manifestPath)) { + continue; + } + const manifest = readJSONFile(manifestPath); - const { dependencies, devDependencies, resolutions } = manifest; + const { dependencies = {}, devDependencies = {}, resolutions } = manifest; if (!devDependencies) { throw new Error("Expected 'devDependencies' to be declared"); } @@ -311,10 +315,12 @@ export async function setReactVersion( } } else { for (const packageName of keys(profile)) { - const deps = dependencies?.[packageName] - ? dependencies - : devDependencies; - deps[packageName] = profile[packageName]; + if (Object.hasOwn(dependencies, packageName)) { + dependencies[packageName] = profile[packageName]; + } + if (Object.hasOwn(devDependencies, packageName)) { + devDependencies[packageName] = profile[packageName]; + } } } diff --git a/packages/app/scripts/types.ts b/packages/app/scripts/types.ts index 12b455c12..c7829eaac 100644 --- a/packages/app/scripts/types.ts +++ b/packages/app/scripts/types.ts @@ -341,7 +341,7 @@ export type Manifest = { url: string; directory?: string; }; - dependencies?: Record; + dependencies?: Record; peerDependencies?: Record; devDependencies?: Record; resolutions?: Record; diff --git a/packages/example-macos/package.json b/packages/example-macos/package.json index e07500caf..40c6a7311 100644 --- a/packages/example-macos/package.json +++ b/packages/example-macos/package.json @@ -8,10 +8,9 @@ "build:ios": "rnx-cli bundle --platform ios", "build:macos": "rnx-cli bundle --platform macos", "build:visionos": "rnx-cli bundle --platform ios", - "clean": "yarn workspace react-native-test-app clean", "ios": "rnx-cli run --platform ios", "macos": "rnx-cli run --platform macos", - "set-react-version": "yarn workspace react-native-test-app set-react-version", + "set-react-version": "node ../app/scripts/internal/set-react-version.mts", "start": "rnx-cli start", "visionos": "rnx-cli run --platform visionos" }, diff --git a/packages/example-windows/package.json b/packages/example-windows/package.json index 85b983b5a..e4960e29b 100644 --- a/packages/example-windows/package.json +++ b/packages/example-windows/package.json @@ -8,10 +8,9 @@ "build:ios": "rnx-cli bundle --platform ios", "build:windows": "rnx-cli bundle --platform windows", "ci:windows": "rnx-cli run-windows --logging --no-packager --no-launch --no-deploy --msbuildprops UseBundle=false --no-telemetry", - "clean": "yarn workspace react-native-test-app clean", "ios": "rnx-cli run --platform ios", "prebuild": "node ../app/windows/app.mjs", - "set-react-version": "yarn workspace react-native-test-app set-react-version", + "set-react-version": "node ../app/scripts/internal/set-react-version.mts", "start": "rnx-cli start", "windows": "rnx-cli run-windows --no-packager" },