@srcroot/ui 0.0.16 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +19 -20
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -579,16 +579,21 @@ async function init(options) {
|
|
|
579
579
|
} else {
|
|
580
580
|
spinner.info(`Found ${chalk.cyan(missing.length)} missing ${missing.length === 1 ? "dependency" : "dependencies"}: ${chalk.dim(missing.map((d) => d.split("@")[0]).join(", "))}`);
|
|
581
581
|
}
|
|
582
|
-
async function
|
|
582
|
+
async function runCommand(command, cwd2) {
|
|
583
|
+
const { exec } = await import("child_process");
|
|
584
|
+
const { promisify } = await import("util");
|
|
585
|
+
const execAsync = promisify(exec);
|
|
586
|
+
return await execAsync(command, { cwd: cwd2 });
|
|
587
|
+
}
|
|
588
|
+
async function installOneByOne(spinner2, packageManager2, installCmd2, missing2, cwd2) {
|
|
583
589
|
spinner2.warn("Batch installation failed. Attempting to install dependencies one by one...");
|
|
584
590
|
let allSucceeded = true;
|
|
591
|
+
const installFlags = packageManager2 === "npm" ? "--legacy-peer-deps" : "";
|
|
585
592
|
for (const dep of missing2) {
|
|
586
|
-
spinner2.start(`Installing ${chalk.cyan(dep)} via ${packageManager2}...`);
|
|
593
|
+
spinner2.start(`Installing ${chalk.cyan(dep)} via ${packageManager2}${installFlags ? " (with --legacy-peer-deps)" : ""}...`);
|
|
587
594
|
try {
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
cwd: cwd2
|
|
591
|
-
});
|
|
595
|
+
const command = installFlags ? `${packageManager2} ${installCmd2} ${installFlags} ${dep}` : `${packageManager2} ${installCmd2} ${dep}`;
|
|
596
|
+
await runCommand(command, cwd2);
|
|
592
597
|
spinner2.succeed(`Installed ${chalk.green(dep)}`);
|
|
593
598
|
} catch (depError) {
|
|
594
599
|
allSucceeded = false;
|
|
@@ -609,35 +614,29 @@ async function init(options) {
|
|
|
609
614
|
console.log(chalk.green("\n\u2705 All dependencies installed successfully!\n"));
|
|
610
615
|
} else {
|
|
611
616
|
console.log(chalk.yellow("\n\u26A0 Some dependencies failed to install."));
|
|
617
|
+
const manualCmd = installFlags ? `${packageManager2} ${installCmd2} ${installFlags} ${missing2.join(" ")}` : `${packageManager2} ${installCmd2} ${missing2.join(" ")}`;
|
|
612
618
|
console.log(chalk.dim(`
|
|
613
|
-
Please manually run: ${
|
|
619
|
+
Please manually run: ${manualCmd}
|
|
614
620
|
`));
|
|
615
621
|
}
|
|
616
622
|
}
|
|
617
623
|
if (missing.length > 0) {
|
|
618
|
-
|
|
619
|
-
spinner.text = `Installing dependencies via ${packageManager}: ${missing.join(", ")}...`;
|
|
624
|
+
spinner.start(`Installing dependencies via ${packageManager}: ${missing.join(", ")}...`);
|
|
620
625
|
try {
|
|
621
|
-
|
|
622
|
-
stdio: "pipe",
|
|
623
|
-
cwd
|
|
624
|
-
});
|
|
626
|
+
await runCommand(`${packageManager} ${installCmd} ${missing.join(" ")}`, cwd);
|
|
625
627
|
spinner.succeed("Dependencies installed");
|
|
626
628
|
} catch (error) {
|
|
627
629
|
const stderr = error.stderr?.toString() || "";
|
|
628
630
|
if (packageManager === "npm" && (stderr.includes("ERESOLVE") || stderr.includes("peer dependency") || stderr.includes("conflicting peer dependency") || stderr.includes("Cannot read properties of null"))) {
|
|
629
|
-
spinner.
|
|
631
|
+
spinner.start("Batch installation failed. Retrying with --legacy-peer-deps...");
|
|
630
632
|
try {
|
|
631
|
-
|
|
632
|
-
stdio: "pipe",
|
|
633
|
-
cwd
|
|
634
|
-
});
|
|
633
|
+
await runCommand(`npm install --legacy-peer-deps ${missing.join(" ")}`, cwd);
|
|
635
634
|
spinner.succeed("Dependencies installed (used --legacy-peer-deps)");
|
|
636
635
|
} catch (retryError) {
|
|
637
|
-
await installOneByOne(spinner, packageManager, installCmd, missing, cwd
|
|
636
|
+
await installOneByOne(spinner, packageManager, installCmd, missing, cwd);
|
|
638
637
|
}
|
|
639
638
|
} else {
|
|
640
|
-
await installOneByOne(spinner, packageManager, installCmd, missing, cwd
|
|
639
|
+
await installOneByOne(spinner, packageManager, installCmd, missing, cwd);
|
|
641
640
|
}
|
|
642
641
|
}
|
|
643
642
|
}
|