-
Notifications
You must be signed in to change notification settings - Fork 1
/
installDependencies.js
49 lines (40 loc) · 1.56 KB
/
installDependencies.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const fs = require('node:fs');
const { execSync } = require('child_process');
// Function to execute shell commands
function executeCommand(command) {
try {
execSync(command, { stdio: 'inherit' });
} catch (error) {
console.error(`Error executing command: ${command}`);
process.exit(1);
}
}
// install dependencies.
// Function to read dependencies from package.json
function readDependenciesFromPackageJson(dependencyType = 'dependencies') {
// Read package.json file
const packageJson = fs.readFileSync('package.json', 'utf8');
// Parse package.json content to get dependencies
const dependencies = JSON.parse(packageJson)[dependencyType];
// Return an array of dependencies
return Object.keys(dependencies);
}
// Function to install dependencies using yarn
function installDependencies(dependencies, isDevDeps = false) {
// Install dependencies using yarn
executeCommand(`yarn add ${isDevDeps ? '-D' : ''}${dependencies.join(' ')}`);
}
// Main function to copy dependencies from package.json and install them
function copyAndInstallDependencies() {
// Read dependencies from package.json
const dependencies = readDependenciesFromPackageJson('dependencies');
const devDependencies = readDependenciesFromPackageJson('devDependencies');
// Install dependencies using yarn
installDependencies(dependencies, false);
installDependencies(devDependencies, true);
console.log(
'Dependencies and dev dependencies copied and installed successfully.'
);
}
// Execute the copy and install dependencies function
copyAndInstallDependencies();