MCPcopy Create free account
hub / github.com/Create-Node-App/create-node-app / run

Function run

src/install.js:97–161  ·  view source on GitHub ↗
(
  root,
  appName,
  originalDirectory,
  verbose,
  useYarn,
  addons,
  dependencies,
  devDependencies,
  alias,
  installDependencies
)

Source from the content-addressed store, hash-verified

95}
96
97async function run(
98 root,
99 appName,
100 originalDirectory,
101 verbose,
102 useYarn,
103 addons,
104 dependencies,
105 devDependencies,
106 alias,
107 installDependencies
108) {
109 if (useYarn) {
110 isOnline = await checkIfOnline(useYarn);
111 } else {
112 isOnline = true;
113 }
114
115 const command = useYarn ? 'yarn' : 'npm run';
116
117 if (installDependencies) {
118 console.log(chalk.green('Installing packages. This might take a couple of minutes.'));
119 console.log(chalk.green('Installing dependencies...'));
120 console.log();
121 // Install dependencies
122 await install(root, useYarn, dependencies, verbose, isOnline, false);
123
124 if (devDependencies.length > 0) {
125 console.log();
126 console.log(chalk.green('Installing devDependencies...'));
127 console.log();
128 //Install devDependencies
129 await install(root, useYarn, devDependencies, verbose, isOnline, true);
130 }
131 } else {
132 console.log(chalk.yellow('Skip package installation.'));
133 console.log(chalk.yellow('Run npm install/yarn in your project.'));
134 let packageJson = JSON.parse(fs.readFileSync(`${root}/package.json`, 'utf8'));
135 packageJson.dependencies = dependencies.reduce((dep, elem) => {
136 if (/.+@[0-9a-zA-Z-.]+$/.test(elem)) {
137 let [name, version] = elem.split('@');
138 dep[name] = `^${version}`;
139 } else {
140 dep[elem] = '*';
141 }
142 return dep;
143 }, {});
144 packageJson.devDependencies = devDependencies.reduce((dep, elem) => {
145 dep[elem] = '*';
146 return dep;
147 }, {});
148
149 fs.writeFileSync(
150 path.join(root, 'package.json'),
151 JSON.stringify(packageJson, null, 2) + os.EOL
152 );
153 }
154

Callers 1

createAppFunction · 0.85

Calls 3

checkIfOnlineFunction · 0.85
installFunction · 0.85
loadFilesFunction · 0.85

Tested by

no test coverage detected