Skip to content

Commit f8c9365

Browse files
committed
fix: update error message when installing dependencies fails
affects: @medly/create-app, @medly/create-module, @medly/starter-shared
1 parent b600b8e commit f8c9365

File tree

5 files changed

+38
-19
lines changed

5 files changed

+38
-19
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ node_modules/
22
coverage/
33
*.log
44
packages/**/dist
5+
packages/**/node_modules
56
.DS_Store
67
.out/
78
.idea

packages/app/bin/index.js

+12-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,17 @@ const { execSync } = require('child_process');
88
const questions = require('./questions');
99
const { Option } = require('commander');
1010
const commander = require('commander');
11-
const { addProjectDetails, installDependencies, printMedly, updateHuskyCommands, printGenericError } = require('@medly/starter-shared');
11+
const {
12+
addProjectDetails,
13+
installDependencies,
14+
printMedly,
15+
updateHuskyCommands,
16+
printGenericError,
17+
removeProjectFolder
18+
} = require('@medly/starter-shared');
1219

1320
async function init() {
14-
let cmdProjectName;
21+
let cmdProjectName, folderName;
1522

1623
try {
1724
printMedly();
@@ -35,6 +42,8 @@ async function init() {
3542
options = await questions({ ...commanderOptions, projectName: cmdProjectName }),
3643
{ packageManager, projectName } = options;
3744

45+
folderName = projectName;
46+
3847
// Create project directory
3948
const projectRoot = path.resolve(projectName);
4049
fs.ensureDirSync(projectName);
@@ -73,6 +82,7 @@ async function init() {
7382
]);
7483
} catch (error) {
7584
printGenericError(error);
85+
removeProjectFolder(folderName);
7686
}
7787
}
7888

packages/module/bin/index.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ const commander = require('commander');
99
const { Option } = require('commander');
1010
const questions = require('./questions');
1111
const copyTemplateFiles = require('./copyTemplateFiles');
12-
const { addProjectDetails, installDependencies, printMedly, printGenericError } = require('@medly/starter-shared');
12+
const { addProjectDetails, installDependencies, printMedly, printGenericError, removeProjectFolder } = require('@medly/starter-shared');
1313

1414
async function init() {
15-
let cmdProjectName;
15+
let cmdProjectName, folderName;
1616

1717
try {
1818
printMedly();
@@ -43,6 +43,8 @@ async function init() {
4343
options = await questions({ ...commanderOptions, projectName: cmdProjectName }),
4444
{ registry, packageManager, projectName } = options;
4545

46+
folderName = projectName;
47+
4648
// Create project directory
4749
const projectRoot = path.resolve(projectName);
4850
fs.ensureDirSync(projectName);
@@ -80,6 +82,7 @@ async function init() {
8082
console.log('\nAdd ' + chalk.green('NPM_TOKEN') + ' as secret in github repo to publish the package.');
8183
} catch (error) {
8284
printGenericError(error);
85+
removeProjectFolder(folderName);
8386
}
8487
}
8588

packages/shared/src/installDependencies.js

+17-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ const { execSync, spawnSync } = require('child_process');
22
const chalk = require('chalk');
33
const fs = require('fs-extra');
44
const path = require('path');
5-
const removeProjectFolder = require('./removeProjectFolder');
65

76
module.exports = packageManager => {
87
let package = fs.readJSONSync(path.resolve('package.json'));
@@ -31,20 +30,29 @@ module.exports = packageManager => {
3130
}
3231
try {
3332
const param =
34-
packageManager === 'yarn' ? ['add', '--prefer-offline', '--silent'] : packageManager === 'npm' ? ['install'] : ['add'];
35-
dependencies.length > 0 &&
33+
packageManager === 'yarn'
34+
? ['add', '--prefer-offline', '--silent']
35+
: packageManager === 'npm'
36+
? ['install', '--legacy-peer-deps']
37+
: ['add'];
38+
dependencies?.length > 0 &&
3639
spawnSync(packageManager, [...param, ...dependencies], {
3740
stdio: 'inherit'
3841
});
39-
devDependencies.length > 0 && spawnSync(packageManager, [...param, '-D', ...devDependencies], { stdio: 'inherit' });
40-
} catch {
41-
removeProjectFolder();
42-
packageManager === 'yarn' &&
43-
console.log('\n 🛠️ If there is any cache issue, you can try running -> ', chalk.green('yarn cache clean'));
42+
devDependencies?.length > 0 && spawnSync(packageManager, [...param, '-D', ...devDependencies], { stdio: 'inherit' });
43+
} catch (error) {
44+
console.log(chalk.red('\nInstalling dependency failed with error: \n'));
45+
console.log(chalk.red(error));
46+
47+
console.log('\n🛠️ ' + ' Possible resolution \n');
48+
49+
packageManager === 'yarn' && console.log('If there is any cache issue, you can try running -> ', chalk.green('yarn cache clean'));
4450
packageManager === 'npm' &&
4551
console.log(
46-
'\n 🛠️ If there is any peer dependency error, you can try running -> ',
52+
'If there is any peer dependency error, you can try running -> ',
4753
chalk.green('npm config set legacy-peer-deps true')
4854
);
55+
56+
throw new Error();
4957
}
5058
};
+3-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
const chalk = require('chalk');
2-
const removeProjectFolder = require('./removeProjectFolder');
32

43
module.exports = error => {
5-
removeProjectFolder();
64
console.log(
7-
chalk.red('\n\nSomething went wrong.\n\n') +
8-
'Please help us in improving the package by raising the bug with error stack' +
9-
chalk.blue('\n\nhttps://github.com/medly/starter/issues')
5+
'\nPlease help us in improving the package by raising the bug with the screenshot of the error on this link --> ' +
6+
chalk.blue(' https://github.com/medly/starter/issues')
107
);
11-
console.log('\nError:\n\n' + chalk.red(error));
8+
error && error.toString() !== 'Error' && console.log('\n' + chalk.red(error) + '\n');
129
};

0 commit comments

Comments
 (0)