Skip to content

Commit efe364e

Browse files
authored
fix(docusaurus): update and fix webpack issue (#1685)
* fix(docusaurus): update and fix webpack issue * add @docusaurus/babel
1 parent f1862ed commit efe364e

3 files changed

Lines changed: 29 additions & 3 deletions

File tree

babel.config.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
const originalPreset = require('kcd-scripts/babel')
22
const customPreset = api => {
3+
// Docusaurus discovers this root babel.config.js (via getCustomBabelConfigFilePath)
4+
// and passes it as configFile to its babel-loader, replacing its own preset.
5+
// The kcd-scripts preset uses the classic JSX runtime, which breaks Docusaurus
6+
// internals (e.g. TitleFormatterProvider) that import only named members from
7+
// 'react' (no default React import). Defer to Docusaurus's own babel preset
8+
// when invoked by Docusaurus (caller.name is 'client' or 'server').
9+
const callerName = api.caller(caller => caller && caller.name)
10+
if (callerName === 'client' || callerName === 'server') {
11+
api.cache.using(() => callerName)
12+
return {
13+
presets: [require.resolve('@docusaurus/babel/preset')],
14+
plugins: [require.resolve('babel-plugin-macros')],
15+
}
16+
}
317
api.cache(true)
418
const evaluatedPreset = originalPreset(api)
519
const plugins = [

docusaurus/plugins/webpack5polyfills.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,17 @@ module.exports = function () {
1212
module: false,
1313
},
1414
},
15+
module: {
16+
rules: [
17+
// Some dependencies ship ESM that does directory-style imports
18+
// (e.g. yaml's browser dist importing 'buffer'). Webpack 5 strict
19+
// ESM resolution requires fully specified paths, so relax it.
20+
{
21+
test: /\.m?js$/,
22+
resolve: {fullySpecified: false},
23+
},
24+
],
25+
},
1526
plugins: [new NodePolyfillPlugin()],
1627
}
1728
},

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,10 @@
9292
"@babel/plugin-proposal-private-methods": "^7.18.6",
9393
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
9494
"@cypress/webpack-preprocessor": "^7.0.2",
95-
"@docusaurus/core": "3.3.2",
96-
"@docusaurus/module-type-aliases": "3.3.2",
97-
"@docusaurus/preset-classic": "3.3.2",
95+
"@docusaurus/core": "3.10.1",
96+
"@docusaurus/babel": "3.10.1",
97+
"@docusaurus/module-type-aliases": "3.10.1",
98+
"@docusaurus/preset-classic": "3.10.1",
9899
"@mdx-js/react": "^3.0.1",
99100
"@rollup/plugin-babel": "^6.1.0",
100101
"@rollup/plugin-commonjs": "^29.0.0",

0 commit comments

Comments
 (0)