MCPcopy
hub / github.com/electron/forge / initNPM

Function initNPM

packages/api/core/src/api/init-scripts/init-npm.ts:37–72  ·  view source on GitHub ↗
(
  pm: PMDetails,
  dir: string,
  electronVersion: string,
  task: ForgeListrTask<T>,
)

Source from the content-addressed store, hash-verified

35export const exactDevDeps = ['electron'];
36
37export const initNPM = async <T>(
38 pm: PMDetails,
39 dir: string,
40 electronVersion: string,
41 task: ForgeListrTask<T>,
42): Promise<void> => {
43 d('installing dependencies');
44 task.output = `${pm.executable} ${pm.install} ${deps.join(' ')}`;
45 await installDependencies(pm, dir, deps);
46
47 d(`installing devDependencies`);
48 task.output = `${pm.executable} ${pm.install} ${pm.dev} ${devDeps.join(' ')}`;
49 await installDependencies(pm, dir, devDeps, DepType.DEV);
50
51 d('installing exact devDependencies');
52 for (const packageName of exactDevDeps) {
53 let packageInstallString = packageName;
54 if (packageName === 'electron') {
55 if (electronVersion === 'nightly') {
56 packageInstallString = `electron-nightly@latest`;
57 } else if (semver.prerelease(electronVersion)?.includes('nightly')) {
58 packageInstallString = `electron-nightly@${electronVersion}`;
59 } else {
60 packageInstallString += `@${electronVersion}`;
61 }
62 }
63 task.output = `${pm.executable} ${pm.install} ${pm.dev} ${pm.exact} ${packageInstallString}`;
64 await installDependencies(
65 pm,
66 dir,
67 [packageInstallString],
68 DepType.DEV,
69 DepVersionRestriction.EXACT,
70 );
71 }
72};

Callers 2

init.tsFile · 0.90
init-npm.spec.tsFile · 0.90

Calls 1

installDependenciesFunction · 0.90

Tested by

no test coverage detected