【问题标题】:NextJS + Contentful => getEntries request within getInitialProps breaks production buildNextJS + Contentful => getInitialProps 中的 getEntries 请求中断了生产构建
【发布时间】:2020-01-16 12:25:44
【问题描述】:

堆栈:NextJS、Contentful + Now

概述:在 getInitialProps 异步函数中调用 contentful 的 getEntries() 请求。在本地环境中,一切正常,我收到帖子然后成功地将它们作为道具传递到我可以呈现它们的页面。

问题:当我尝试使用 Now 进行部署时,出现以下错误:

错误:找不到资源。 在 notFoundError (/zeit/31b54c53/node_modules/contentful/dist/contentful.node.js:7731:19) 在 /zeit/31b54c53/node_modules/contentful/dist/contentful.node.js:7854:13 在 processTicksAndRejections (internal/process/task_queues.js:93:5) 在异步 Function.module.exports.HB77.Post.getInitialProps (/zeit/31b54c53/.next/serverless/pages/p/[id].js:1198:15) 在异步 loadGetInitialProps (/zeit/31b54c53/.next/serverless/pages/p/[id].js:3451:17) { 系统:{类型:'错误',id:'未找到'}, 细节: { 类型:'输入', id: '未定义', 环境:'主人', 空间:未定义 } } 预呈现页面“/p/[id]”https://err.sh/zeit/next.js/prerender-error:错误:无法呈现无服务器页面 在 Object._default [默认] (/zeit/31b54c53/node_modules/next/dist/export/worker.js:12:212) 在 processTicksAndRejections (internal/process/task_queues.js:93:5)

代码:

const Post = props => {
  ...
}

Post.getInitialProps = async function({ query }) {

  const contentfulClient = contentful.createClient({
    accessToken: `${process.env.ACCESS_TOKEN}`,
    space: `${process.env.SPACE}`
  });

  const res = await contentfulClient.getEntry(`${query.id}`);

  return {
    post: res
  };
};

export default Post;

【问题讨论】:

    标签: reactjs next.js contentful vercel


    【解决方案1】:

    看起来您的 ENV 可能缺少:

    details: { type: 'Entry', id: 'undefined', environment: 'master', space: undefined } 
    

    process.env.space 是 undefined

    【讨论】:

      【解决方案2】:

      我将我的秘密存储在 .env、.env.build 中,并通过他们的 CLI 将它们添加到 Now secrets 中。为了将秘密公开给生产版本,我创建了一个 next.config.js 文件,在其中创建了一个模块导出,如下所示:

      
          module.exports = {
            env: {
              SPACE: process.env.SPACE,
            }
          };
      
      

      我的问题是我不小心将 next.config.js 文件添加到了 gitignore,导致 env 机密返回为未定义。 ?

      【讨论】:

        猜你喜欢
        • 2020-10-17
        • 2022-12-08
        • 2021-01-13
        • 1970-01-01
        • 2021-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-26
        相关资源
        最近更新 更多