我在尝试从 Next.js 项目中的 mdx 文件中获取元数据时遇到问题。
MDX 文件示例:
export const meta = {
title: 'title',
date: new Date('May 09, 2019'),
};
Content
export const getStaticProps = async context => {
const postFilenames = await recRead(process.cwd() + '/pages', ['*.tsx']);
const postMetadata = await Promise.all(
postFilenames.map(async p => {
const { meta } = require(p);
return meta;
}),
);
return {
props: {
postMetadata: postMetadata,
},
};
};
这是一个修改过的版本:https://sarim.work/blog/dynamic-imports-mdx。访问网站时出现错误:
<块引用>找不到模块“/home/oliwier/webDev/oliwierwpodrozy/pages/balkany/1.mdx”。
顺便说一句,recRead
是这个 https://www.npmjs.com/package/recursive-readdir。
这是怎么回事?在 getStaticProps
之外,我可以导入数据。
我在尝试解决问题时发现了一些荒谬的东西。
// 1)console.log(postFilenamesToImport[0]);
// 2) const meta = await import('../pages/wielka-brytania/1.mdx');
// 3) const meta = await import(postFilenamesToImport[0]);
// console.log(meta.meta);
这不是常量问题。它是为测试而编写的,我知道同时使用 2) 和 3) 会导致问题。注释 1) 时会发生此错误。