fix(docs): pre-bundle mermaid deps so the dev server resolves dayjs/cytoscape
CI / scan (pull_request) Failing after 2m25s
CI / commits (pull_request) Successful in 2m31s
CI / check (pull_request) Successful in 2m40s
CI / a11y (pull_request) Successful in 1m56s
Docs site / build (pull_request) Successful in 2m41s
CI / perf (pull_request) Successful in 4m51s
CI / scan (pull_request) Failing after 2m25s
CI / commits (pull_request) Successful in 2m31s
CI / check (pull_request) Successful in 2m40s
CI / a11y (pull_request) Successful in 1m56s
Docs site / build (pull_request) Successful in 2m41s
CI / perf (pull_request) Successful in 4m51s
`pnpm docs:dev` rendered a blank page with `does not provide an export named 'default'` thrown from dayjs.min.js. Mermaid 11 ships its `dayjs`, `cytoscape`, `debug` and `@braintree/sanitize-url` dependencies with a CommonJS `main` field but no `default` ESM export. Vite's dev server resolves those modules eagerly as ESM and the browser throws on the first navigation. The production build (`docs:build`) was unaffected — Rollup's plugin pipeline already applies the CJS→ESM interop wrapper. This fix is exclusively for the dev happy path: `optimizeDeps.include` forces Vite to pre-bundle the Mermaid dependency tree, which applies the same interop shim at dev-server boot. Caught by manual smoke of the merged docs-site chantier — the build-time Mermaid-rendering fence in `.gitea/workflows/docs-site.yml` didn't catch this because it only inspects production HTML.
This commit is contained in:
@@ -160,5 +160,20 @@ export default withMermaid(
|
|||||||
mermaid: {
|
mermaid: {
|
||||||
securityLevel: 'strict',
|
securityLevel: 'strict',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Mermaid 11 ships its `dayjs` / `cytoscape` dependencies with a
|
||||||
|
// CommonJS `main` field but no `default` ESM export. Vite's dev
|
||||||
|
// server resolves those modules eagerly as ESM and the browser
|
||||||
|
// throws `does not provide an export named 'default'` on the
|
||||||
|
// first navigation. Telling `optimizeDeps` to pre-bundle the
|
||||||
|
// Mermaid dependency tree forces the CJS→ESM interop wrapper
|
||||||
|
// that Vite's Rollup-based build already applies in prod. The
|
||||||
|
// production build (`docs:build`) was unaffected even before
|
||||||
|
// this; this fix is exclusively for the `docs:dev` happy path.
|
||||||
|
vite: {
|
||||||
|
optimizeDeps: {
|
||||||
|
include: ['mermaid', 'dayjs', 'debug', '@braintree/sanitize-url'],
|
||||||
|
},
|
||||||
|
},
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user