File tree 8 files changed +120
-1
lines changed
website/_dogfooding/_docs tests/tests
8 files changed +120
-1
lines changed Original file line number Diff line number Diff line change
1
+ # test-bad-package
2
+
3
+ This package declares a wrong React version on purpose (16.14.0)
4
+
5
+ The goal is to test that the MD/MDX content of this package can still be imported/rendered by our website.
6
+
7
+ See related issue https://github.com/facebook/docusaurus/issues/9027
8
+
9
+ ---
10
+
11
+ import {version as ReactVersion } from ' react' ;
12
+ import {version as ReactDOMVersion } from ' react-dom' ;
13
+
14
+ export function TestComponent() {
15
+ const expectedVersion = 18 ;
16
+ if (! ReactVersion .startsWith (` ${expectedVersion } ` )) {
17
+ throw new Error (
18
+ ` 'test-bad-package/README.mdx' is rendered with bad React version: ${ReactVersion } ` ,
19
+ );
20
+ }
21
+ if (! ReactVersion .startsWith (` ${expectedVersion } ` )) {
22
+ throw new Error (
23
+ ` 'test-bad-package/README.mdx' is rendered with bad React-DOM version: ${ReactDOMVersion } ` ,
24
+ );
25
+ }
26
+ return (
27
+ <>
28
+ <div >React version: { ReactVersion } </div >
29
+ <div >React DOM version: { ReactDOMVersion } </div >
30
+ </>
31
+ );
32
+ }
33
+
34
+ <TestComponent />
35
+
36
+ ---
37
+
38
+ ## MDX Components work:
39
+
40
+ <details >
41
+ <summary >Summary</summary >
42
+
43
+ Details
44
+
45
+ </details >
46
+
47
+ ``` js
48
+ const age = 42 ;
49
+ ```
Original file line number Diff line number Diff line change
1
+ {
2
+ "name" : " test-bad-package" ,
3
+ "version" : " 3.5.1" ,
4
+ "private" : true ,
5
+ "dependencies" : {
6
+ "react" : " 16.14.0" ,
7
+ "react-dom" : " 16.14.0" ,
8
+ "@mdx-js/react" : " 1.0.1"
9
+ }
10
+ }
Original file line number Diff line number Diff line change 9
9
" website" ,
10
10
" test-website-in-workspace" ,
11
11
" packages/create-docusaurus/templates/*" ,
12
+ " admin/test-bad-package" ,
12
13
" admin/new.docusaurus.io"
13
14
],
14
15
"scripts" : {
Original file line number Diff line number Diff line change 119
119
},
120
120
"peerDependencies" : {
121
121
"react" : " ^18.0.0" ,
122
- "react-dom" : " ^18.0.0"
122
+ "react-dom" : " ^18.0.0" ,
123
+ "@mdx-js/react" : " ^3.0.0"
123
124
},
124
125
"engines" : {
125
126
"node" : " >=18.0"
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ exports[`base webpack config creates webpack aliases 1`] = `
23
23
" @docusaurus/useIsomorphicLayoutEffect" : " ../../../../client/exports/useIsomorphicLayoutEffect.tsx" ,
24
24
" @docusaurus/useRouteContext" : " ../../../../client/exports/useRouteContext.tsx" ,
25
25
" @generated" : " ../../../../../../.." ,
26
+ " @mdx-js/react" : " ../../../../../../../node_modules/@mdx-js/react" ,
26
27
" @site" : " " ,
27
28
" @theme-init/PluginThemeComponentEnhanced" : " pluginThemeFolder/PluginThemeComponentEnhanced.js" ,
28
29
" @theme-original/Error" : " ../../../../client/theme-fallback/Error/index.tsx" ,
@@ -47,5 +48,7 @@ exports[`base webpack config creates webpack aliases 1`] = `
47
48
" @theme/UserThemeComponent1" : " src/theme/UserThemeComponent1.js" ,
48
49
" @theme/subfolder/PluginThemeComponent2" : " pluginThemeFolder/subfolder/PluginThemeComponent2.js" ,
49
50
" @theme/subfolder/UserThemeComponent2" : " src/theme/subfolder/UserThemeComponent2.js" ,
51
+ " react" : " ../../../../../../../node_modules/react" ,
52
+ " react-dom" : " ../../../../../../../node_modules/react-dom" ,
50
53
}
51
54
` ;
Original file line number Diff line number Diff line change @@ -31,6 +31,15 @@ const LibrariesToTranspileRegex = new RegExp(
31
31
LibrariesToTranspile . map ( ( libName ) => `(node_modules/${ libName } )` ) . join ( '|' ) ,
32
32
) ;
33
33
34
+ const ReactAliases : Record < string , string > = process . env
35
+ . DOCUSAURUS_NO_REACT_ALIASES
36
+ ? { }
37
+ : {
38
+ react : path . dirname ( require . resolve ( 'react/package.json' ) ) ,
39
+ 'react-dom' : path . dirname ( require . resolve ( 'react-dom/package.json' ) ) ,
40
+ '@mdx-js/react' : path . dirname ( require . resolve ( '@mdx-js/react' ) ) ,
41
+ } ;
42
+
34
43
export function excludeJS ( modulePath : string ) : boolean {
35
44
// Always transpile client dir
36
45
if ( modulePath . startsWith ( clientDir ) ) {
@@ -136,6 +145,7 @@ export async function createBaseConfig({
136
145
process . cwd ( ) ,
137
146
] ,
138
147
alias : {
148
+ ...ReactAliases ,
139
149
'@site' : siteDir ,
140
150
'@generated' : generatedFilesDir ,
141
151
...( await loadDocusaurusAliases ( ) ) ,
Original file line number Diff line number Diff line change
1
+ # Import Bad Package
2
+
3
+ We are importing MDX content from a file that is in a package that has a bad React version.
4
+
5
+ This is expected to work despite the bad version.
6
+
7
+ See https://github.com/facebook/docusaurus/issues/9027
8
+
9
+ ---
10
+
11
+ import Readme from ' @site/../admin/test-bad-package/README.mdx' ;
12
+
13
+ <Readme />
Original file line number Diff line number Diff line change 2152
2152
unist-util-visit "^5.0.0"
2153
2153
vfile "^6.0.0"
2154
2154
2155
+
2156
+ version "1.0.1"
2157
+ resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.0.1.tgz#565acea8375b02a2039a5afefdeb3758ccc13988"
2158
+ integrity sha512-8jFmVrU6uAg94zh6sYCNtZnh9YovEvXmwaD9O8HxzQWNcEyn3ZZXG7r5ZcOpvtaQLnM+4+nwN4T42sfs2D+DvA==
2159
+
2155
2160
"@mdx-js/react@^3.0.0":
2156
2161
version "3.0.0"
2157
2162
resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.0.0.tgz#eaccaa8d6a7736b19080aff5a70448a7ba692271"
@@ -13808,6 +13813,16 @@ react-dev-utils@^12.0.1:
13808
13813
strip-ansi "^6.0.1"
13809
13814
text-table "^0.2.0"
13810
13815
13816
+
13817
+ version "16.14.0"
13818
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89"
13819
+ integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==
13820
+ dependencies:
13821
+ loose-envify "^1.1.0"
13822
+ object-assign "^4.1.1"
13823
+ prop-types "^15.6.2"
13824
+ scheduler "^0.19.1"
13825
+
13811
13826
react-dom@^18.0.0:
13812
13827
version "18.3.0"
13813
13828
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.0.tgz#98a3a1cc4e471d517c2a084f38ab1d58d02cada7"
@@ -13954,6 +13969,15 @@ react-waypoint@^10.3.0:
13954
13969
prop-types "^15.0.0"
13955
13970
react-is "^17.0.1 || ^18.0.0"
13956
13971
13972
+
13973
+ version "16.14.0"
13974
+ resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d"
13975
+ integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==
13976
+ dependencies:
13977
+ loose-envify "^1.1.0"
13978
+ object-assign "^4.1.1"
13979
+ prop-types "^15.6.2"
13980
+
13957
13981
react@^18.0.0:
13958
13982
version "18.3.0"
13959
13983
resolved "https://registry.yarnpkg.com/react/-/react-18.3.0.tgz#84386d0a36fdf5ef50fa5755b7812bdfb76194a5"
@@ -14640,6 +14664,14 @@ saxes@^6.0.0:
14640
14664
dependencies:
14641
14665
xmlchars "^2.2.0"
14642
14666
14667
+ scheduler@^0.19.1:
14668
+ version "0.19.1"
14669
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
14670
+ integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
14671
+ dependencies:
14672
+ loose-envify "^1.1.0"
14673
+ object-assign "^4.1.1"
14674
+
14643
14675
scheduler@^0.23.1:
14644
14676
version "0.23.1"
14645
14677
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.1.tgz#ef964a7936d7cbe8f7bc0d38fc479a823aed2923"
You can’t perform that action at this time.
0 commit comments