Skip to content

Commit db46bf8

Browse files
authored
perf(build): remove redundant steps and add fast dev build (SD-1886) (#1999)
* 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) * perf(build): deduplicate types:build across build scripts 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.
1 parent 373d0db commit db46bf8

3 files changed

Lines changed: 11 additions & 6 deletions

File tree

package.json

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
"test:editor": "vitest run --root ./packages/super-editor",
1414
"test:superdoc": "vitest run --root ./packages/superdoc",
1515
"test:cov": "node scripts/test-cov.mjs",
16-
"type-check": "tsc -b --force tsconfig.references.json",
16+
"type-check": "tsc -b tsconfig.references.json",
17+
"type-check:force": "tsc -b --force tsconfig.references.json",
1718
"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",
1819
"validate:commands": "node scripts/validate-command-types.mjs",
1920
"unzip": "bash packages/super-editor/src/tests/helpers/unzip.sh",
@@ -24,9 +25,11 @@
2425
"dev:docs": "pnpm --prefix apps/docs run dev",
2526
"build:superdoc": "pnpm --prefix packages/superdoc run build",
2627
"build:super-editor": "pnpm --prefix packages/super-editor run build",
27-
"build": "pnpm run clean:packages && pnpm --prefix packages/super-editor run types:build && pnpm run build:superdoc && pnpm run type-check",
28-
"build:es": "pnpm --prefix packages/super-editor run types:build && pnpm --prefix packages/superdoc run build:es",
29-
"pack:es": "pnpm --prefix packages/super-editor run types:build && pnpm --prefix packages/superdoc run pack:es",
28+
"build": "pnpm run build:superdoc && pnpm run type-check",
29+
"build:clean": "pnpm run clean:packages && pnpm run build:superdoc && pnpm run type-check:force",
30+
"build:dev": "pnpm --prefix packages/superdoc run build:dev",
31+
"build:es": "pnpm --prefix packages/superdoc run build:es",
32+
"pack:es": "pnpm --prefix packages/superdoc run pack:es",
3033
"clean:packages": "rm -rf ./packages/**/dist ./shared/**/dist",
3134
"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",
3235
"publish": "node scripts/publish-superdoc.cjs",

packages/superdoc/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
"dev:collab": "concurrently -k -n VITE,COLLAB -c cyan,green \"vite\" \"node src/dev/collab-server.js\"",
6464
"collab-server": "node src/dev/collab-server.js",
6565
"build": "pnpm --prefix ../super-editor run types:build && vite build && pnpm run build:umd",
66+
"build:dev": "SUPERDOC_SKIP_DTS=1 vite build",
6667
"postbuild": "node ./scripts/ensure-types.cjs",
6768
"build:es": "pnpm --prefix ../super-editor run types:build && vite build && node ./scripts/ensure-types.cjs",
6869
"watch:es": "vite build --watch",

packages/superdoc/vite.config.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,10 @@ export const getAliases = (_isDev) => {
6262

6363
// https://vitejs.dev/config/
6464
export default defineConfig(({ mode, command}) => {
65+
const skipDts = process.env.SUPERDOC_SKIP_DTS === '1';
6566
const plugins = [
6667
vue(),
67-
dts({
68+
!skipDts && dts({
6869
include: ['src/**/*', '../super-editor/src/**/*'],
6970
outDir: 'dist',
7071
}),
@@ -78,7 +79,7 @@ export default defineConfig(({ mode, command}) => {
7879
hook: 'writeBundle'
7980
}),
8081
// visualizer(visualizerConfig)
81-
];
82+
].filter(Boolean);
8283
if (mode !== 'test') plugins.push(nodePolyfills());
8384
const isDev = command === 'serve';
8485

0 commit comments

Comments
 (0)