45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
// This plugin is required for fixing `.apk` build issue
|
|
// It appends Expo and RN versions into the `build.gradle` file
|
|
// References:
|
|
// https://github.com/t3-oss/create-t3-turbo/issues/120
|
|
// https://github.com/expo/expo/issues/18129
|
|
|
|
/** @type {import("@expo/config-plugins").ConfigPlugin} */
|
|
const defineConfig = (config) => {
|
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
return require("@expo/config-plugins").withProjectBuildGradle(
|
|
config,
|
|
(config) => {
|
|
if (!config.modResults.contents.includes("ext.getPackageJsonVersion =")) {
|
|
config.modResults.contents = config.modResults.contents.replace(
|
|
"buildscript {",
|
|
`buildscript {
|
|
ext.getPackageJsonVersion = { packageName ->
|
|
new File(['node', '--print', "JSON.parse(require('fs').readFileSync(require.resolve('\${packageName}/package.json'), 'utf-8')).version"].execute(null, rootDir).text.trim())
|
|
}`,
|
|
);
|
|
}
|
|
|
|
if (!config.modResults.contents.includes("reactNativeVersion =")) {
|
|
config.modResults.contents = config.modResults.contents.replace(
|
|
"ext {",
|
|
`ext {
|
|
reactNativeVersion = "\${ext.getPackageJsonVersion('react-native')}"`,
|
|
);
|
|
}
|
|
|
|
if (!config.modResults.contents.includes("expoPackageVersion =")) {
|
|
config.modResults.contents = config.modResults.contents.replace(
|
|
"ext {",
|
|
`ext {
|
|
expoPackageVersion = "\${ext.getPackageJsonVersion('expo')}"`,
|
|
);
|
|
}
|
|
|
|
return config;
|
|
},
|
|
);
|
|
};
|
|
|
|
module.exports = defineConfig;
|