Nextjs 导出给出了无法找到页面的模块

ble*_*enm 6 next.js

嗨,我刚开始玩 nextjs,看看它是否适合我的用例。我想用一些动态路由导出站点。

我的页面文件夹结构如下

page
  locales
    [locale]
      [slug].js
Run Code Online (Sandbox Code Playgroud)

当我运行时,next develop我可以在http://localhost:3000/locales/de-DE/summer-dress-f.

所以现在我试图用next.config.js类似的方式导出页面

module.exports = {
  exportPathMap: function() {
    return {
      "/locales/de-DE/summer-dress-f": {
        page: "/locales",
        query: { locale: "de-DE", slug: "summer-dress-f" }
      }
    };
  }
};
Run Code Online (Sandbox Code Playgroud)

next build运行良好,但是当我运行时next export出现错误

Error: Cannot find module for page: /locales
    at pageNotFoundError (/Users/bmathew/Desktop/workspace/next-demo/node_modules/next-server/dist/server/require.js:13:17)
Run Code Online (Sandbox Code Playgroud)

任何想法我在这里错过了什么?

ric*_*rdo 17

有时,当我们正在构建并且我们有另一个运行yarn dev的终端时,就会出现问题


ble*_*enm 6

终于想通了。路径图应该看起来像

module.exports = {
  exportPathMap: function() {
    return {
      "/locales/de-DE/summer-dress-f": {
        page: "/locales/[locale]/[slug]",
        query: { locale: "de-DE", slug: "summer-dress-f" }
      }
    };
  }
};
Run Code Online (Sandbox Code Playgroud)


Dan*_*ein 6

跑步npm install似乎可以解决这个问题。

  • 也为我工作过。有谁知道这是什么原因造成的? (4认同)

小智 6

我的情况是因为你同时运行了“dev”脚本


tre*_*mby 5

我刚刚遇到了类似的错误,而且我只是忘记了next build之前运行next export


idi*_*ove 5

页面组件命名应该是唯一的。所以我有 about.tsx 名称为:AboutPage 和 faqs.tsx 名称为:AboutPage 以及,将 faqs.tsx 修改为唯一修复它:)