fix: trace cli dependencies (#2683)

trace cli dependencies
This commit is contained in:
Bernd Storath
2026-06-30 13:13:50 +02:00
committed by GitHub
parent ee232569f0
commit 915e559514
3 changed files with 51 additions and 3 deletions
+44 -1
View File
@@ -1,10 +1,47 @@
// @ts-check
import { writeFile, mkdir } from 'node:fs/promises';
import { fileURLToPath } from 'node:url';
import esbuild from 'esbuild';
esbuild.build({
const isTrace =
process.argv.slice(2).findIndex((arg) => arg === '--trace') !== -1;
/**
* Writes files with needed imports to `../node_modules/.cache/wg-easy/trace.mjs`
*
* @param {import('esbuild').Metafile} metafile
*/
async function writeTrace(metafile) {
const paths = [
...new Set(
Object.values(metafile.outputs).flatMap((v) =>
v.imports.map((v) => v.path)
)
),
];
const imports = paths.map((v) => `import '${v}';`).join('\n');
const folderUrl = new URL('../node_modules/.cache/wg-easy/', import.meta.url);
const folder = fileURLToPath(folderUrl);
const filePath = fileURLToPath(new URL('./trace.mjs', folderUrl));
await mkdir(folder, { recursive: true });
await writeFile(filePath, imports);
}
function getOverrides() {
if (isTrace) {
return {
outfile: undefined,
write: false,
};
}
return {};
}
const result = await esbuild.build({
entryPoints: [fileURLToPath(new URL('./index.ts', import.meta.url))],
bundle: true,
outfile: fileURLToPath(new URL('../.output/server/cli.mjs', import.meta.url)),
@@ -12,4 +49,10 @@ esbuild.build({
format: 'esm',
packages: 'external',
logLevel: 'info',
metafile: true,
...getOverrides(),
});
if (isTrace) {
await writeTrace(result.metafile);
}
+5 -1
View File
@@ -166,7 +166,11 @@ export default defineNuxtConfig({
},
},
externals: {
traceInclude: [fileURLToPath(new URL('./cli/index.ts', import.meta.url))],
traceInclude: [
fileURLToPath(
new URL('./node_modules/.cache/wg-easy/trace.mjs', import.meta.url)
),
],
},
},
alias: {
+2 -1
View File
@@ -5,7 +5,7 @@
"private": true,
"type": "module",
"scripts": {
"build": "nuxt build && pnpm cli:build",
"build": "pnpm cli:trace && nuxt build && pnpm cli:build",
"dev": "nuxt dev",
"generate": "nuxt generate",
"preview": "nuxt preview",
@@ -16,6 +16,7 @@
"typecheck": "nuxt typecheck",
"check:all": "pnpm typecheck && pnpm lint && pnpm format:check && pnpm build",
"db:generate": "drizzle-kit generate",
"cli:trace": "node cli/build.js --trace",
"cli:build": "node cli/build.js",
"cli:dev": "tsx cli/index.ts",
"test:unit": "vitest run --project unit"