ipikuka

Import a server component with extension .mjs in MDX

🔙 Read in 9 min., written by ipikuka

The relative links is relative to the module which MDXRemote called, since the baseUrl is setted as import.meta.url in the options.

1. Import a React Server Component

runtime<Bar />    component
classicimport Bar from "../../../mdxComponents/Bar.mjs";
Imports work, Hello from imported <Bar /> server component.
automaticimport Bar from "../../../mdxComponents/Bar-runtime-automatic.mjs";
Imports work, Hello from imported <Bar /> server component.

Here is a RSC that fetchs a text from an API.

runtime<Text />    component
classicimport Text from "../../../mdxComponents/Text.mjs";
Hello from imported <Text /> server component --> Armadillo
automaticimport Text from "../../../mdxComponents/Text-runtime-automatic.mjs";
Hello from imported <Text /> server component --> Armadillo

2. Import a React Server Component via dynamic import

runtime<Bar />    component
classicexport const Bar = (await import("../../../mdxComponents/Bar.mjs")).default;
Imports work, Hello from imported <Bar /> server component.
automaticexport const { default: Bar } = (await import("../../../mdxComponents/Bar-runtime-automatic.mjs"));
Imports work, Hello from imported <Bar /> server component.

Here is a RSC that fetchs a text from an API.

runtime<Text />    component
classicexport const Text = (await import("../../../mdxComponents/Text.mjs")).default;
Hello from imported <Text /> server component --> Armadillo
automaticexport const { default: Text } = (await import("../../../mdxComponents/Text-runtime-automatic.mjs"));
Hello from imported <Text /> server component --> Armadillo