@@ -3,6 +3,7 @@ const { getOptions } = require(`loader-utils`)
3
3
const grayMatter = require ( `gray-matter` )
4
4
const unified = require ( `unified` )
5
5
const babel = require ( `@babel/core` )
6
+ const { createRequireFromPath, slash } = require ( `gatsby-core-utils` )
6
7
7
8
const {
8
9
isImport,
@@ -12,16 +13,19 @@ const {
12
13
EMPTY_NEWLINE ,
13
14
} = require ( `@mdx-js/mdx/util` )
14
15
15
- const toMDAST = require ( `remark-parse` )
16
- const squeeze = require ( `remark-squeeze-paragraphs` )
16
+ // Some packages are required implicitly from @mdx -js/mdx (not listed in package.json).
17
+ // To support yarn PnP, we need them to be required from their direct parent.
18
+ const requireFromMDX = createRequireFromPath ( require . resolve ( `@mdx-js/mdx` ) )
19
+
20
+ const toMDAST = requireFromMDX ( `remark-parse` )
21
+ const squeeze = requireFromMDX ( `remark-squeeze-paragraphs` )
17
22
const debug = require ( `debug` ) ( `gatsby-plugin-mdx:mdx-loader` )
18
23
const debugMore = require ( `debug` ) ( `gatsby-plugin-mdx-info:mdx-loader` )
19
24
20
25
const genMdx = require ( `../utils/gen-mdx` )
21
26
const withDefaultOptions = require ( `../utils/default-options` )
22
27
const createMDXNode = require ( `../utils/create-mdx-node` )
23
28
const { createFileNode } = require ( `../utils/create-fake-file-node` )
24
- const { slash } = require ( `gatsby-core-utils` )
25
29
26
30
const DEFAULT_OPTIONS = {
27
31
footnotes : true ,
@@ -171,8 +175,8 @@ ${contentWithoutFrontmatter}`
171
175
const result = babel . transform ( rawMDXOutput , {
172
176
configFile : false ,
173
177
plugins : [
174
- require ( `@babel/plugin-syntax-jsx` ) ,
175
- require ( `@babel/plugin-syntax-object-rest-spread` ) ,
178
+ requireFromMDX ( `@babel/plugin-syntax-jsx` ) ,
179
+ requireFromMDX ( `@babel/plugin-syntax-object-rest-spread` ) ,
176
180
require ( `../utils/babel-plugin-html-attr-to-jsx-attr` ) ,
177
181
] ,
178
182
} )
0 commit comments