Last active
March 22, 2025 03:39
-
-
Save theprashant-one/2caa96dfcb5e9958a7d9058c0d10c94e to your computer and use it in GitHub Desktop.
Revisions
-
theprashant-one revised this gist
Feb 15, 2025 . No changes.There are no files selected for viewing
-
theprashant-one created this gist
Feb 15, 2025 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,55 @@ const { withAppBuildGradle } = require("@expo/config-plugins") /** * A Config Plugin to disable bundle compression in Android build.gradle. * @param {import('@expo/config-plugins').ConfigPlugin} config * @returns {import('@expo/config-plugins').ConfigPlugin} */ const withDisableBundleCompression = (config) => { return withAppBuildGradle(config, (config) => { let buildGradle = config.modResults.contents const hasAndroidResources = buildGradle.includes("androidResources {") const hasNoCompress = buildGradle.includes("noCompress") if (hasAndroidResources && hasNoCompress) { if ( buildGradle.includes('noCompress += ["bundle"]') || buildGradle.includes("noCompress += 'bundle'") || buildGradle.includes('noCompress += "bundle"') ) { return config } const lines = buildGradle.split("\n") const modifiedLines = lines.map((line) => { if (line.trim().startsWith("noCompress")) { if (line.includes("+=")) { return line.replace(/\]/, ', "bundle"]') } else if (line.includes("=")) { return line.replace("=", '+= ["bundle",') + "]" } } return line }) config.modResults.contents = modifiedLines.join("\n") } else { const androidBlock = buildGradle.indexOf("android {") if (androidBlock !== -1) { const insertPosition = buildGradle.indexOf("\n", androidBlock) + 1 const newContent = buildGradle.slice(0, insertPosition) + " androidResources {\n" + ' noCompress += ["bundle"]\n' + " }\n" + buildGradle.slice(insertPosition) config.modResults.contents = newContent } } return config }) } module.exports = withDisableBundleCompression