feat: init
This commit is contained in:
139
node_modules/@nuxt/cli/dist/info-BdhebRiU.mjs
generated
vendored
Normal file
139
node_modules/@nuxt/cli/dist/info-BdhebRiU.mjs
generated
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
import { a as legacyRootDirArgs, t as cwdArgs } from "./_shared-BCYCnX0T.mjs";
|
||||
import { n as logger } from "./logger-B4ge7MhP.mjs";
|
||||
import { n as tryResolveNuxt } from "./kit-4LNqcmNp.mjs";
|
||||
import "./versions-DD7jbeRR.mjs";
|
||||
import { t as getBuilder } from "./banner-DNLxDHdP.mjs";
|
||||
import { t as formatInfoBox } from "./formatting-PESozNtr.mjs";
|
||||
import { t as getPackageManagerVersion } from "./packageManagers-BX7-V04a.mjs";
|
||||
import process from "node:process";
|
||||
import { defineCommand } from "citty";
|
||||
import { colors } from "consola/utils";
|
||||
import { isBun, isDeno, isMinimal } from "std-env";
|
||||
import { box } from "@clack/prompts";
|
||||
import { resolve } from "pathe";
|
||||
import { readPackageJSON } from "pkg-types";
|
||||
import os from "node:os";
|
||||
import { copy } from "copy-paste";
|
||||
import { detectPackageManager } from "nypm";
|
||||
|
||||
//#region ../nuxi/package.json
|
||||
var version = "3.33.1";
|
||||
|
||||
//#endregion
|
||||
//#region ../nuxi/src/commands/info.ts
|
||||
var info_default = defineCommand({
|
||||
meta: {
|
||||
name: "info",
|
||||
description: "Get information about Nuxt project"
|
||||
},
|
||||
args: {
|
||||
...cwdArgs,
|
||||
...legacyRootDirArgs
|
||||
},
|
||||
async run(ctx) {
|
||||
const cwd = resolve(ctx.args.cwd || ctx.args.rootDir);
|
||||
const nuxtConfig = await getNuxtConfig(cwd);
|
||||
const { dependencies = {}, devDependencies = {} } = await readPackageJSON(cwd).catch(() => ({}));
|
||||
const nuxtPath = tryResolveNuxt(cwd);
|
||||
async function getDepVersion(name) {
|
||||
for (const url of [cwd, nuxtPath]) {
|
||||
if (!url) continue;
|
||||
const pkg = await readPackageJSON(name, { url }).catch(() => null);
|
||||
if (pkg) return pkg.version;
|
||||
}
|
||||
return dependencies[name] || devDependencies[name];
|
||||
}
|
||||
async function listModules(arr = []) {
|
||||
const info = [];
|
||||
for (let m of arr) {
|
||||
if (Array.isArray(m)) m = m[0];
|
||||
const name = normalizeConfigModule(m, cwd);
|
||||
if (name) {
|
||||
const v = await getDepVersion(name.split("/").splice(0, 2).join("/"));
|
||||
info.push(`\`${v ? `${name}@${v}` : name}\``);
|
||||
}
|
||||
}
|
||||
return info.join(", ");
|
||||
}
|
||||
const nuxtVersion = await getDepVersion("nuxt") || await getDepVersion("nuxt-nightly") || await getDepVersion("nuxt-edge") || await getDepVersion("nuxt3") || "-";
|
||||
const isLegacy = nuxtVersion.startsWith("2");
|
||||
const builder = !isLegacy ? nuxtConfig.builder || "vite" : nuxtConfig.bridge?.vite ? "vite" : nuxtConfig.buildModules?.includes("nuxt-vite") ? "vite" : "webpack";
|
||||
let packageManager = (await detectPackageManager(cwd))?.name;
|
||||
if (packageManager) packageManager += `@${getPackageManagerVersion(packageManager)}`;
|
||||
const osType = os.type();
|
||||
const builderInfo = typeof builder === "string" ? getBuilder(cwd, builder) : {
|
||||
name: "custom",
|
||||
version: "0.0.0"
|
||||
};
|
||||
const infoObj = {
|
||||
"Operating system": osType === "Darwin" ? `macOS ${os.release()}` : osType === "Windows_NT" ? `Windows ${os.release()}` : `${osType} ${os.release()}`,
|
||||
"CPU": `${os.cpus()[0]?.model || "unknown"} (${os.cpus().length} cores)`,
|
||||
...isBun ? { "Bun version": Bun?.version } : isDeno ? { "Deno version": Deno?.version.deno } : { "Node.js version": process.version },
|
||||
"nuxt/cli version": version,
|
||||
"Package manager": packageManager ?? "unknown",
|
||||
"Nuxt version": nuxtVersion,
|
||||
"Nitro version": await getDepVersion("nitropack") || await getDepVersion("nitro"),
|
||||
"Builder": builderInfo.name === "custom" ? "custom" : `${builderInfo.name.toLowerCase()}@${builderInfo.version}`,
|
||||
"Config": Object.keys(nuxtConfig).map((key) => `\`${key}\``).sort().join(", "),
|
||||
"Modules": await listModules(nuxtConfig.modules),
|
||||
...isLegacy ? { "Build modules": await listModules(nuxtConfig.buildModules || []) } : {}
|
||||
};
|
||||
logger.info(`Nuxt root directory: ${colors.cyan(nuxtConfig.rootDir || cwd)}\n`);
|
||||
const boxStr = formatInfoBox(infoObj);
|
||||
let firstColumnLength = 0;
|
||||
let secondColumnLength = 0;
|
||||
const entries = Object.entries(infoObj).map(([label, val]) => {
|
||||
if (label.length > firstColumnLength) firstColumnLength = label.length + 4;
|
||||
if ((val || "").length > secondColumnLength) secondColumnLength = (val || "").length + 2;
|
||||
return [label, val || "-"];
|
||||
});
|
||||
let copyStr = `| ${" ".repeat(firstColumnLength)} | ${" ".repeat(secondColumnLength)} |\n| ${"-".repeat(firstColumnLength)} | ${"-".repeat(secondColumnLength)} |\n`;
|
||||
for (const [label, value] of entries) if (!isMinimal) copyStr += `| ${`**${label}**`.padEnd(firstColumnLength)} | ${(value.includes("`") ? value : `\`${value}\``).padEnd(secondColumnLength)} |\n`;
|
||||
if (!isMinimal && await new Promise((resolve) => copy(copyStr, (err) => resolve(!err)))) box(`\n${boxStr}`, ` Nuxt project info ${colors.gray("(copied to clipboard) ")}`, {
|
||||
contentAlign: "left",
|
||||
titleAlign: "left",
|
||||
width: "auto",
|
||||
titlePadding: 2,
|
||||
contentPadding: 2,
|
||||
rounded: true
|
||||
});
|
||||
else logger.info(`Nuxt project info:\n${copyStr}`, { withGuide: false });
|
||||
const isNuxt3 = !isLegacy;
|
||||
const isBridge = !isNuxt3 && infoObj["Build modules"]?.includes("bridge");
|
||||
const repo = isBridge ? "nuxt/bridge" : "nuxt/nuxt";
|
||||
const docsURL = isNuxt3 || isBridge ? "https://nuxt.com" : "https://v2.nuxt.com";
|
||||
logger.info(`👉 Read documentation: ${colors.cyan(docsURL)}`);
|
||||
if (isNuxt3 || isBridge) {
|
||||
logger.info(`👉 Report an issue: ${colors.cyan(`https://github.com/${repo}/issues/new?template=bug-report.yml`)}`, { spacing: 0 });
|
||||
logger.info(`👉 Suggest an improvement: ${colors.cyan(`https://github.com/${repo}/discussions/new`)}`, { spacing: 0 });
|
||||
}
|
||||
}
|
||||
});
|
||||
function normalizeConfigModule(module, rootDir) {
|
||||
if (!module) return null;
|
||||
if (typeof module === "string") return module.split(rootDir).pop().split("node_modules").pop().replace(/^\//, "");
|
||||
if (typeof module === "function") return `${module.name}()`;
|
||||
if (Array.isArray(module)) return normalizeConfigModule(module[0], rootDir);
|
||||
return null;
|
||||
}
|
||||
async function getNuxtConfig(rootDir) {
|
||||
try {
|
||||
const { createJiti } = await import("jiti");
|
||||
const jiti = createJiti(rootDir, {
|
||||
interopDefault: true,
|
||||
alias: {
|
||||
"~": rootDir,
|
||||
"@": rootDir
|
||||
}
|
||||
});
|
||||
globalThis.defineNuxtConfig = (c) => c;
|
||||
const result = await jiti.import("./nuxt.config", { default: true });
|
||||
delete globalThis.defineNuxtConfig;
|
||||
return result;
|
||||
} catch {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
//#endregion
|
||||
export { info_default as default };
|
||||
Reference in New Issue
Block a user