Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion packages/next-mdx/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,29 @@ module.exports =
'@mdx-js/react',
require.resolve('./mdx-components.js'),
]
const rscMdxLoader =
options.defaultLoaders.babel &&
typeof options.defaultLoaders.babel === 'object' &&
options.defaultLoaders.babel.loader?.includes('next-swc-loader')
? {
...options.defaultLoaders.babel,
options: {
...options.defaultLoaders.babel.options,
Comment thread
vercel[bot] marked this conversation as resolved.
bundleLayer: 'rsc',
},
}
: options.defaultLoaders.babel
config.module.rules.push({
test: extension,
use: [options.defaultLoaders.babel, loader],
oneOf: [
{
issuerLayer: 'rsc',
use: [rscMdxLoader, loader],
},
{
use: [options.defaultLoaders.babel, loader],
},
],
})

if (typeof inputConfig.webpack === 'function') {
Expand Down
4 changes: 4 additions & 0 deletions test/e2e/app-dir/mdx/app/page.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Hello World

export const metadata = {
title: 'MDX metadata',
}

This is MDX!

import { Client } from './client'
Expand Down
4 changes: 3 additions & 1 deletion test/e2e/app-dir/mdx/mdx.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ for (const type of ['with-mdx-rs', 'without-mdx-rs']) {
describe('app directory', () => {
it('should work in initial html', async () => {
const $ = await next.render$('/')
expect($('title').text()).toBe('MDX metadata')
expect($('h1').text()).toBe('Hello World')
expect($('p').text()).toBe('This is MDX!')
})
Expand Down Expand Up @@ -97,7 +98,8 @@ for (const type of ['with-mdx-rs', 'without-mdx-rs']) {
it('should work in initial html', async () => {
const $ = await next.render$('/pages')
expect($('h1').text()).toBe('Hello World')
expect($('p').text()).toBe('This is MDX!')
expect($('p').first().text()).toBe('This is MDX!')
expect($('#pages-router-counter').text()).toBe('Count: 0')
})

// Recommended for tests that need a full browser
Expand Down
10 changes: 10 additions & 0 deletions test/e2e/app-dir/mdx/pages/pages/index.mdx
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# Hello World

This is MDX!

import { useState } from 'react'

export function Counter() {
const [count] = useState(0)

return <p id="pages-router-counter">Count: {count}</p>
}

<Counter />