mirror of
				https://github.com/strapi/strapi.git
				synced 2025-10-31 18:08:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
| // Import node modules.
 | |
| const { exec } = require('child_process');
 | |
| const path = require('path');
 | |
| 
 | |
| const _ = require('lodash');
 | |
| 
 | |
| const addCheckMark = require('./helpers/checkmark');
 | |
| const animateProgress = require('./helpers/progress');
 | |
| const pkg = require(path.resolve(__dirname, '..', '..', '..', 'package.json'));
 | |
| 
 | |
| process.stdin.resume();
 | |
| process.stdin.setEncoding('utf8');
 | |
| let interval;
 | |
| 
 | |
| // List of necessary dependencies.
 | |
| const helperDependencies = [
 | |
|   'cross-env',
 | |
|   'plop',
 | |
|   'prettier',
 | |
|   'rimraf',
 | |
|   'webpack',
 | |
| ];
 | |
| 
 | |
| /**
 | |
|  * Define the list of necessary dependencies, with their respective versions.
 | |
|  */
 | |
| const necessaryDependencies = _.map(
 | |
|   _.pickBy(pkg.dependencies, (version, devDependency) =>
 | |
|     _.includes(helperDependencies, devDependency) || _.startsWith(devDependency, 'eslint')
 | |
|   ), (version, devDependency) =>
 | |
|     `${devDependency}@${version}`
 | |
| );
 | |
| 
 | |
| /**
 | |
|  * Install necessary dependencies.
 | |
|  */
 | |
| const installNecessaryDeps = () => {
 | |
|   process.stdout.write('\nInstalling necessary dependencies');
 | |
|   interval = animateProgress('Installing necessary dependencies');
 | |
| 
 | |
|   // Exec installation.
 | |
|   exec(`npm install ${necessaryDependencies.join(' ')} --save-dev`, addCheckMark.bind(null, installDepsCallback));
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * Callback function after installing dependencies.
 | |
|  */
 | |
| const installDepsCallback = (error) => {
 | |
|   clearInterval(interval);
 | |
|   process.stdout.write('\n');
 | |
|   if (error) {
 | |
|     process.stderr.write(error);
 | |
|     process.stdout.write('\n');
 | |
|     process.exit(1);
 | |
|   }
 | |
| 
 | |
|   process.exit(0);
 | |
| };
 | |
| 
 | |
| installNecessaryDeps();
 | 
