From 0f4db8bcbba9457fcc93dd17e662a2c232f75441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Jastrze=CC=A8bski?= Date: Mon, 26 May 2025 11:25:54 +0200 Subject: [PATCH 1/3] fix: fix template build in PNPM --- .../template/android/settings.gradle | 14 ++++++++++++-- packages/platform-android/template/utils.gradle | 14 ++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 packages/platform-android/template/utils.gradle diff --git a/packages/platform-android/template/android/settings.gradle b/packages/platform-android/template/android/settings.gradle index df7ed6c17..af72359cd 100644 --- a/packages/platform-android/template/android/settings.gradle +++ b/packages/platform-android/template/android/settings.gradle @@ -1,6 +1,16 @@ -pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") } +pluginManagement { + apply from: "./utils.gradle" + def reactNativePath = resolveNodeModule('react-native', rootDir) + def gradlePluginPath = resolveNodeModule('@react-native/gradle-plugin', reactNativePath) + + settings.ext.gradlePluginPath = gradlePluginPath.path + includeBuild(gradlePluginPath.path) +} + plugins { id("com.facebook.react.settings") } extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand(['npx', 'rnef', 'config', '-p', 'android']) } + rootProject.name = 'HelloWorld' + include ':app' -includeBuild('../node_modules/@react-native/gradle-plugin') +includeBuild(ext.gradlePluginPath) diff --git a/packages/platform-android/template/utils.gradle b/packages/platform-android/template/utils.gradle new file mode 100644 index 000000000..d5cd51fce --- /dev/null +++ b/packages/platform-android/template/utils.gradle @@ -0,0 +1,14 @@ +ext.resolveNodeModule = { String packageName, File startDir -> + def candidate = new File(startDir, "node_modules/$packageName") + + if (candidate.exists()) { + return candidate.canonicalFile + } + + def parentDir = startDir.parentFile + if (parentDir == null || startDir.canonicalPath == parentDir.canonicalPath) { + throw new GradleException("Failed to find the package '$packageName'. Ensure you have installed node_modules.") + } + + return resolveNodeModule(packageName, parentDir) +} From 3f404d661224d796269f36a6b34cd6b163f4e9c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Jastrze=CC=A8bski?= Date: Mon, 26 May 2025 11:27:03 +0200 Subject: [PATCH 2/3] changeset --- .changeset/eighty-papayas-fix.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/eighty-papayas-fix.md diff --git a/.changeset/eighty-papayas-fix.md b/.changeset/eighty-papayas-fix.md new file mode 100644 index 000000000..5cba08307 --- /dev/null +++ b/.changeset/eighty-papayas-fix.md @@ -0,0 +1,5 @@ +--- +'@rnef/platform-android': patch +--- + +fix: React Native gradle plugin path resolution for PNPM From 025895db016c8253c517b31ebbc84b5976bec3d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Jastrze=CC=A8bski?= Date: Mon, 26 May 2025 12:47:41 +0200 Subject: [PATCH 3/3] fix utils file location --- packages/platform-android/template/{ => android}/utils.gradle | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/platform-android/template/{ => android}/utils.gradle (100%) diff --git a/packages/platform-android/template/utils.gradle b/packages/platform-android/template/android/utils.gradle similarity index 100% rename from packages/platform-android/template/utils.gradle rename to packages/platform-android/template/android/utils.gradle