mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-05-23 22:25:05 +00:00
Resolves CodeRabbit findings F-12143-1, F-12143-3, F-12143-7. Per D17-pkg2-build-strategy ADR: package now builds via Vite library mode + vite-plugin-dts, dropping the inconsistent rootDir restriction and the --emitDeclarationOnly flag. Vite resolves @/* aliases against the canonical surface in main app src/extension-api/, externalizes vue as a peer dep, and bundles to a single 3.95 kB build/index.js. vite-plugin-dts emits the per-file .d.ts closure under build/ with @/* imports rewritten to relative paths. The original tsc-only plan in #12143 was unworkable because tsc does not rewrite path aliases — emitted JS would have unresolvable @/... imports at runtime. Vite library mode is the smallest deviation that satisfies PKG3 acceptance ('emits BOTH .d.ts + .js') while preserving 'the barrel is the source of truth in main app src/extension-api/' intent in packages/extension-api/AGENTS.md. Verified: pnpm build emits build/index.js (3.95 kB) + build/.../*.d.ts tree node -e "import('./build/index.js')" returns real functions for defineNodeExtension, defineExtension, onNodeMounted, onNodeRemoved synthetic downstream consumer importing NodeHandle/WidgetHandle types and runtime fns type-checks under tsc --noEmit pnpm lint && pnpm format:check && pnpm knip pass Also adds packages/extension-api/vite.config.mts to the eslint allowDefaultProject list so the typed lint rules can resolve it. See decisions/D17-pkg2-build-strategy.md in the cross-repo workspace for the full options analysis (A: types-only — rejected; B: vendor sources — deferred to post-#11939; C: build from main app sources — chosen).
9 lines
143 B
JSON
9 lines
143 B
JSON
{
|
|
"extends": "./tsconfig.build.json",
|
|
"compilerOptions": {
|
|
"noEmit": true,
|
|
"declaration": false,
|
|
"declarationMap": false
|
|
}
|
|
}
|