Skip to content

Commit 5f2a183

Browse files
committed
feat: add an option to specify react native version
1 parent 8d28f22 commit 5f2a183

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

.github/workflows/build-templates.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ jobs:
107107
--type ${{ matrix.type }} \
108108
--languages ${{ matrix.language }} \
109109
--example ${{ matrix.example }}
110+
110111
echo "work_dir=$WORK_DIR" >> $GITHUB_ENV
111112
112113
# Build Android for only some matrices to skip redundant builds

packages/create-react-native-library/src/index.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ type ArgName =
7171
| 'repo-url'
7272
| 'languages'
7373
| 'type'
74-
| 'example';
74+
| 'example'
75+
| 'react-native-version';
7576

7677
type ProjectLanguages =
7778
| 'java-objc'
@@ -102,6 +103,7 @@ type Answers = {
102103
languages: ProjectLanguages;
103104
type?: ProjectType;
104105
example?: ProjectExample;
106+
reactNativeVersion?: string;
105107
};
106108

107109
const LANGUAGE_CHOICES: {
@@ -207,6 +209,10 @@ const args: Record<ArgName, yargs.Options> = {
207209
description: 'Type of example app',
208210
choices: EXAMPLE_CHOICES.map(({ value }) => value),
209211
},
212+
'react-native-version': {
213+
description: 'Version of React Native to use, uses latest if not specified',
214+
type: 'string',
215+
},
210216
};
211217

212218
async function create(argv: yargs.Arguments<any>) {
@@ -374,6 +380,7 @@ async function create(argv: yargs.Arguments<any>) {
374380
type = 'module-mixed',
375381
languages = type === 'library' ? 'js' : 'java-objc',
376382
example = 'native',
383+
reactNativeVersion,
377384
} = {
378385
...argv,
379386
...(await prompts(
@@ -539,6 +546,7 @@ async function create(argv: yargs.Arguments<any>) {
539546
dest: folder,
540547
projectName: options.project.name,
541548
architecture,
549+
reactNativeVersion,
542550
});
543551

544552
spinner.text = 'Copying files';

packages/create-react-native-library/src/utils/generateExampleApp.ts

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,18 @@ const PACKAGES_TO_ADD = {
2626
'babel-plugin-module-resolver': '^4.1.0',
2727
};
2828

29-
const PACKAGES_TO_ADD_NEW_ARCH = {
30-
'patch-package': '^6.4.7',
31-
'postinstall-postinstall': '^2.1.0',
32-
};
33-
3429
export default async function generateExampleApp({
3530
type,
3631
dest,
3732
projectName,
3833
architecture,
34+
reactNativeVersion = 'latest',
3935
}: {
4036
type: 'expo' | 'native';
4137
dest: string;
4238
projectName: string;
4339
architecture: 'new' | 'mixed' | 'legacy';
40+
reactNativeVersion?: string;
4441
}) {
4542
const directory = path.join(dest, 'example');
4643
const args =
@@ -52,6 +49,8 @@ export default async function generateExampleApp({
5249
`${projectName}Example`,
5350
'--directory',
5451
directory,
52+
'--version',
53+
reactNativeVersion,
5554
'--skip-install',
5655
]
5756
: // `npx create-expo-app example --no-install`
@@ -95,14 +94,6 @@ export default async function generateExampleApp({
9594

9695
Object.assign(devDependencies, PACKAGES_TO_ADD);
9796

98-
// Temporary until autolinking is fixed on iOS
99-
// https://github.com/facebook/react-native/commit/a5622165c198ac6e7ffff5883d4f269a2c974f2e
100-
if (architecture === 'new' || architecture === 'mixed') {
101-
scripts.postinstall = 'patch-package';
102-
103-
Object.assign(devDependencies, PACKAGES_TO_ADD_NEW_ARCH);
104-
}
105-
10697
await fs.writeFile(
10798
path.join(directory, 'package.json'),
10899
JSON.stringify(pkg, null, 2)

0 commit comments

Comments
 (0)