无法从 getStaticProps nextjs

时间:2021-06-12 18:34:17

标签: node.js next.js mdxjs

我在尝试从 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);
  1. 显示:../pages/wielka-brytania/1.mdx 这是一个字符串
  2. 这个有效
  3. 但这个没有。显示错误:错误:找不到模块“../pages/wielka-brytania/1.mdx”

这不是常量问题。它是为测试而编写的,我知道同时使用 2) 和 3) 会导致问题。注释 1) 时会发生此错误。

0 个答案:

没有答案