From 71698d37aae194b6740688bf229a9b15a31323cb Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Wed, 11 Feb 2026 21:00:55 -0300 Subject: [PATCH 1/2] perf(build): speed up build pipeline and add fast dev build (SD-1886) - Remove --force from type-check to enable incremental tsc caching - Remove clean:packages from default build (vite cleans dist/ itself) - Add build:clean for when a full clean build is needed - Add build:dev that skips DTS generation for fast local iteration (~15s vs ~50s) --- package.json | 6 ++++-- packages/superdoc/package.json | 1 + packages/superdoc/vite.config.js | 5 +++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 2deccfd6b2..9bfa35b132 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "test:editor": "vitest run --root ./packages/super-editor", "test:superdoc": "vitest run --root ./packages/superdoc", "test:cov": "node scripts/test-cov.mjs", - "type-check": "tsc -b --force tsconfig.references.json", + "type-check": "tsc -b tsconfig.references.json", "rebuild:types": "pnpm run --filter=@superdoc/common --filter=@superdoc/word-layout --filter=@superdoc/contracts --filter=@superdoc/geometry-utils --filter=@superdoc/style-engine --filter=@superdoc/pm-adapter --filter=@superdoc/measuring-dom --filter=@superdoc/layout-engine --filter=@superdoc/painter-dom --filter=@superdoc/layout-bridge build", "validate:commands": "node scripts/validate-command-types.mjs", "unzip": "bash packages/super-editor/src/tests/helpers/unzip.sh", @@ -24,7 +24,9 @@ "dev:docs": "pnpm --prefix apps/docs run dev", "build:superdoc": "pnpm --prefix packages/superdoc run build", "build:super-editor": "pnpm --prefix packages/super-editor run build", - "build": "pnpm run clean:packages && pnpm --prefix packages/super-editor run types:build && pnpm run build:superdoc && pnpm run type-check", + "build": "pnpm --prefix packages/super-editor run types:build && pnpm run build:superdoc && pnpm run type-check", + "build:clean": "pnpm run clean:packages && pnpm run build", + "build:dev": "pnpm --prefix packages/superdoc run build:dev", "build:es": "pnpm --prefix packages/super-editor run types:build && pnpm --prefix packages/superdoc run build:es", "pack:es": "pnpm --prefix packages/super-editor run types:build && pnpm --prefix packages/superdoc run pack:es", "clean:packages": "rm -rf ./packages/**/dist ./shared/**/dist", diff --git a/packages/superdoc/package.json b/packages/superdoc/package.json index 340e159e08..67b2df3d07 100644 --- a/packages/superdoc/package.json +++ b/packages/superdoc/package.json @@ -63,6 +63,7 @@ "dev:collab": "concurrently -k -n VITE,COLLAB -c cyan,green \"vite\" \"node src/dev/collab-server.js\"", "collab-server": "node src/dev/collab-server.js", "build": "pnpm --prefix ../super-editor run types:build && vite build && pnpm run build:umd", + "build:dev": "SUPERDOC_SKIP_DTS=1 vite build", "postbuild": "node ./scripts/ensure-types.cjs", "build:es": "pnpm --prefix ../super-editor run types:build && vite build && node ./scripts/ensure-types.cjs", "watch:es": "vite build --watch", diff --git a/packages/superdoc/vite.config.js b/packages/superdoc/vite.config.js index 70b78dcdc4..19a77ad7f0 100644 --- a/packages/superdoc/vite.config.js +++ b/packages/superdoc/vite.config.js @@ -62,9 +62,10 @@ export const getAliases = (_isDev) => { // https://vitejs.dev/config/ export default defineConfig(({ mode, command}) => { + const skipDts = process.env.SUPERDOC_SKIP_DTS === '1'; const plugins = [ vue(), - dts({ + !skipDts && dts({ include: ['src/**/*', '../super-editor/src/**/*'], outDir: 'dist', }), @@ -78,7 +79,7 @@ export default defineConfig(({ mode, command}) => { hook: 'writeBundle' }), // visualizer(visualizerConfig) - ]; + ].filter(Boolean); if (mode !== 'test') plugins.push(nodePolyfills()); const isDev = command === 'serve'; From 373fba2fd506e410f44082a63d795847b66e5447 Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Thu, 12 Feb 2026 06:08:56 -0300 Subject: [PATCH 2/2] perf(build): deduplicate types:build across build scripts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove redundant types:build calls from root build, build:es, and pack:es — superdoc's own build scripts already invoke it. Adds type-check:force for build:clean where a full rebuild is needed. Saves ~7s on incremental builds by eliminating duplicate tsc runs. --- package.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 9bfa35b132..5f20768242 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "test:superdoc": "vitest run --root ./packages/superdoc", "test:cov": "node scripts/test-cov.mjs", "type-check": "tsc -b tsconfig.references.json", + "type-check:force": "tsc -b --force tsconfig.references.json", "rebuild:types": "pnpm run --filter=@superdoc/common --filter=@superdoc/word-layout --filter=@superdoc/contracts --filter=@superdoc/geometry-utils --filter=@superdoc/style-engine --filter=@superdoc/pm-adapter --filter=@superdoc/measuring-dom --filter=@superdoc/layout-engine --filter=@superdoc/painter-dom --filter=@superdoc/layout-bridge build", "validate:commands": "node scripts/validate-command-types.mjs", "unzip": "bash packages/super-editor/src/tests/helpers/unzip.sh", @@ -24,11 +25,11 @@ "dev:docs": "pnpm --prefix apps/docs run dev", "build:superdoc": "pnpm --prefix packages/superdoc run build", "build:super-editor": "pnpm --prefix packages/super-editor run build", - "build": "pnpm --prefix packages/super-editor run types:build && pnpm run build:superdoc && pnpm run type-check", - "build:clean": "pnpm run clean:packages && pnpm run build", + "build": "pnpm run build:superdoc && pnpm run type-check", + "build:clean": "pnpm run clean:packages && pnpm run build:superdoc && pnpm run type-check:force", "build:dev": "pnpm --prefix packages/superdoc run build:dev", - "build:es": "pnpm --prefix packages/super-editor run types:build && pnpm --prefix packages/superdoc run build:es", - "pack:es": "pnpm --prefix packages/super-editor run types:build && pnpm --prefix packages/superdoc run pack:es", + "build:es": "pnpm --prefix packages/superdoc run build:es", + "pack:es": "pnpm --prefix packages/superdoc run pack:es", "clean:packages": "rm -rf ./packages/**/dist ./shared/**/dist", "reset": "pnpm run clean:packages && find . -name 'node_modules' -type d -prune -exec rm -rf {} + && find . -name 'package-lock.json' -type f -delete && pnpm install", "publish": "node scripts/publish-superdoc.cjs",