mirror of
https://github.com/kubevela/kubevela.git
synced 2026-05-21 16:53:23 +00:00
42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
/* eslint-disable global-require */
|
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
const { execSync } = require("child_process");
|
|
const { join } = require("path");
|
|
const findChrome = require("carlo/lib/find_chrome");
|
|
const detectInstaller = require("detect-installer");
|
|
|
|
const installPuppeteer = () => {
|
|
// find can use package manger
|
|
const packages = detectInstaller(join(__dirname, "../../"));
|
|
// get installed package manger
|
|
const packageName = packages.find(detectInstaller.hasPackageCommand) || "npm";
|
|
console.log(`🤖 will use ${packageName} install puppeteer`);
|
|
const command = `${packageName} ${
|
|
packageName.includes("yarn") ? "add" : "i"
|
|
} puppeteer`;
|
|
execSync(command, {
|
|
stdio: "inherit",
|
|
});
|
|
};
|
|
|
|
const initPuppeteer = async () => {
|
|
try {
|
|
// eslint-disable-next-line import/no-unresolved
|
|
const findChromePath = await findChrome({});
|
|
const { executablePath } = findChromePath;
|
|
console.log(`🧲 find you browser in ${executablePath}`);
|
|
return;
|
|
} catch (error) {
|
|
console.log("🧲 no find chrome");
|
|
}
|
|
|
|
try {
|
|
require.resolve("puppeteer");
|
|
} catch (error) {
|
|
// need install puppeteer
|
|
await installPuppeteer();
|
|
}
|
|
};
|
|
|
|
initPuppeteer();
|