如何在Astro Starlight MDX文件中导入字符串版本号?
解决Astro Starlight MDX中导入版本号变量为undefined的问题
你的问题出在导入语法不符合ES模块规范以及MDX变量渲染方式不正确,以下是两种可行的解决方案:
方案1:修正命名导出的导入语法
你的version.js使用的是命名导出,MDX中必须用解构语法导入变量:
--- title: Version Test desc: Show version --- import { VERSION } from "/src/components/version"; <p>Version {VERSION}</p>
方案2:改为默认导出
如果想保留原导入写法,可修改version.js为默认导出:
export default '1.0.0'
MDX代码调整为(注意变量需放在JSX元素内才能被解析):
--- title: Version Test desc: Show version --- import VERSION from "/src/components/version"; <p>Version {VERSION}</p>
关键说明
- MDX严格遵循ES模块导入规则,命名导出必须对应解构导入,这和.astro文件的宽松处理逻辑不同;
- MDX中纯文本里的
{VERSION}不会被识别为变量,必须将变量包裹在JSX元素(如<p>、<span>)中,才能触发表达式解析。
内容的提问来源于stack exchange,提问作者David Bradshaw
相关产品推荐
相关产品推荐

