Skip to content

Commit e790a37

Browse files
configure yarn version
1 parent fa53af6 commit e790a37

File tree

8 files changed

+44
-29
lines changed

8 files changed

+44
-29
lines changed

packages/config-templates/renative.templates.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@
454454
"version": "0.5.9"
455455
},
456456
"@react-native-community/cli": {
457-
"disableNpm": true,
457+
"disableNpm": false,
458458
"version": "^15.0.1",
459459
"supportedPlatforms": ["tvos", "ios"]
460460
},
@@ -464,7 +464,7 @@
464464
"@react-native-community/cli-platform-ios": {
465465
"version": "12.3.6",
466466
"disablePluginTemplateOverrides": false,
467-
"disableNpm": true,
467+
"disableNpm": false,
468468
"supportedPlatforms": ["tvos", "ios"],
469469
"nodeModuleOverrides": {
470470
"^12.3.6": {

packages/core/src/configs/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export type NpmPackageFile = {
1010
description?: string;
1111
name?: string;
1212
main?: string;
13+
packageManager?: string;
1314
};
1415

1516
export type NpmPackageFileKey = keyof NpmPackageFile;

packages/core/src/schema/defaults.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ export const DEFAULTS = {
1010
author: 'Unknown',
1111
certificateProfile: 'RNVanillaCert',
1212
signingConfig: 'Debug',
13+
yarnVersion: '3.6.4',
1314
};

packages/engine-core/src/tasks/bootstrap/__tests__/taskNew.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import bookmarkTemplate from '../questions/bookmarkTemplate';
2424
import configTemplates from '../questions/configTemplates';
2525
import projectFolder from '../questions/projectFolder';
2626
import installProject from '../questions/installProject';
27-
import inquiryHandlePeerDepsNpm from '../questions/resolvePeerDepsNPM';
27+
import inquiryYarnVersion from '../questions/configureYarnVersion';
2828

2929
jest.mock('@rnv/core');
3030
jest.mock('lodash/set');
@@ -48,7 +48,7 @@ jest.mock('../questions/projectFolder');
4848
jest.mock('../questions/installProject');
4949
jest.mock('../questionHelpers');
5050
jest.mock('../questions/appConfigs');
51-
jest.mock('../questions/resolvePeerDepsNPM');
51+
jest.mock('../questions/configureYarnVersion');
5252

5353
beforeEach(() => {
5454
createRnvContext();
@@ -115,6 +115,6 @@ describe('taskNew tests', () => {
115115
expect(configTemplates).toHaveBeenCalled();
116116
expect(projectFolder).toHaveBeenCalled();
117117
expect(installProject).toHaveBeenCalled();
118-
expect(inquiryHandlePeerDepsNpm).toHaveBeenCalled();
118+
expect(inquiryYarnVersion).toHaveBeenCalled();
119119
});
120120
});
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { executeAsync, getContext, inquirerPrompt, logInfo, DEFAULTS } from '@rnv/core';
2+
import { NewProjectData } from '../types';
3+
4+
const Question = async (data: NewProjectData) => {
5+
const c = getContext();
6+
const { confirmSetYarnVersion } = await inquirerPrompt({
7+
name: 'confirmSetYarnVersion',
8+
type: 'confirm',
9+
message: `Renative project requires Yarn version ${DEFAULTS.yarnVersion} Would you like to configure it now?`,
10+
});
11+
12+
if (!confirmSetYarnVersion) {
13+
logInfo('Yarn setup cancelled by user.');
14+
return;
15+
}
16+
17+
await executeAsync(`npm install -g yarn`);
18+
19+
await executeAsync(`yarn set version ${DEFAULTS.yarnVersion}`, {
20+
cwd: c.paths.project.dir,
21+
});
22+
await executeAsync(`yarn config set nodeLinker node-modules`, {
23+
cwd: c.paths.project.dir,
24+
});
25+
data.files.project.packageJson.packageManager = `yarn@${DEFAULTS.yarnVersion}`;
26+
logInfo('Yarn setup completed successfully.');
27+
};
28+
29+
export default Question;

packages/engine-core/src/tasks/bootstrap/questions/resolvePeerDepsNPM.ts

Lines changed: 0 additions & 22 deletions
This file was deleted.

packages/engine-core/src/tasks/bootstrap/taskNew.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import inquiryBookmarkTemplate from './questions/bookmarkTemplate';
2424
import inquiryAppConfigs from './questions/appConfigs';
2525
import inquiryConfigTemplates from './questions/configTemplates';
2626
import inquiryProjectInstall from './questions/installProject';
27-
import inquiryHandlePeerDepsNpm from './questions/resolvePeerDepsNPM';
27+
import inquiryYarnVersion from './questions/configureYarnVersion';
2828
import inquiryInstallEngines from './questions/installEngines';
2929
import {
3030
configureConfigOverrides,
@@ -48,6 +48,7 @@ export default createTask({
4848
await inquiryHasNodeModules(payload);
4949
await inquiryWorkspace(payload);
5050
await saveProgressIntoProjectConfig(payload);
51+
await inquiryYarnVersion(payload);
5152
// Switch execution context to new directory
5253
await processChdirToProject();
5354
// Install template only (this avoids whole npm project install)
@@ -75,7 +76,6 @@ export default createTask({
7576
await configureTemplateFiles();
7677
await generateLocalJsonSchemas();
7778
await inquiryAppConfigs(payload);
78-
await inquiryHandlePeerDepsNpm();
7979
await inquiryInstallEngines(payload);
8080
// Telementry
8181
await telemetryNewProject(payload);

packages/template-starter/templateOverrides/.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ npm-debug.log
3939
# Yarn
4040
#
4141
yarn-error.log
42+
.yarn/*
43+
!.yarn/patches
44+
!.yarn/plugins
45+
!.yarn/releases
46+
!.yarn/sdks
47+
!.yarn/versions
4248

4349
# Lerna
4450
#

0 commit comments

Comments
 (0)