【问题标题】:Netlify Gatsby build error, build works locallyNetlify Gatsby 构建错误,构建在本地工作
【发布时间】:2020-10-23 09:35:25
【问题描述】:

昨天和几个月来,当通过 Contentful 添加博客文章触发 Netlify 上的构建钩子时,一切正常。今天一篇新的博客文章通过 Netlify 添加和构建钩子不起作用。在本地运行 gatsby develop 或 gatsby build 时,一切正常,新的博文就在那里。

这是 Netlify 上的错误:错误“gatsby-node.js”在运行 createPages 生命周期时抛出错误: 7:19:16 PM:Reducers 可能不会调度操作:

  • 已尝试通过 Netlify 进行“清除缓存并部署站点”按钮
  • 已尝试 gatsby clean、npm install 并通过 GitHub 推送触发部署

不确定如何确认缓存已清除以及接下来要尝试什么。有什么想法吗?

创建页面:

const Promise = require('bluebird');
const path = require('path');

exports.createSchemaCustomization = ({ actions }) => {
  const { createTypes } = actions;
  const typeDefs = `
    type ContentfulHeroBanner implements Node {
      headerLeft: String
      headerCenter: String
      headerRight: String
    }
  `;
  createTypes(typeDefs);
};

exports.createPages = ({ graphql, actions }) => {
  const { createPage } = actions;

  return new Promise((resolve, reject) => {
    const blogPost = path.resolve('./src/templates/blog-post.js');
    resolve(
      graphql(
        `
          {
            allContentfulBlogPost {
              edges {
                node {
                  title
                  slug
                }
              }
            }
          }
        `
      ).then(result => {
        if (result.errors) {
          console.log(result.errors);
          reject(result.errors);
        }

        const posts = result.data.allContentfulBlogPost.edges;
        posts.forEach((post, index) => {
          createPage({
            path: `/blog/${post.node.slug}/`,
            component: blogPost,
            context: {
              slug: post.node.slug,
            },
          });
        });
      })
    );
  });
};

【问题讨论】:

  • 不知道你的项目代码是不可能的。可以把createPages的内容发到gatsby-node.js吗?
  • @ehrencrona,将此文件添加到问题中。虽然它已经几个月没有修改了。
  • 好的,在这里找到了一些有趣的信息:community.netlify.com/t/…。如果我不使用它,看起来我可以删除我的 yarn.lock 文件。

标签: gatsby netlify contentful


【解决方案1】:

我设法解决了这个问题。正如我刚刚测试删除 yarn.lock 文件而不相信它会有所帮助。但是在将这个 delete yarn.lock commit 推送到 master 之后,它触发了我的构建,并且这个没有 yarn.lock 的构建 Git repo 迫使 Netlify 在构建中依赖 Installing NPM modules 而忘记了 Yarn。

这有帮助:https://community.netlify.com/t/support-guide-debugging-netlify-site-builds/142

关于缓存的一些神秘的东西。

【讨论】:

  • 我遇到了非常相似的情况和相同的构建错误,只是我的 gatsby 存储库不包含 yarn.lock 文件,但它确实包含 package-lock.json。推送删除 package-lock.json 提交,触发的 Netlify 构建成功。谢谢。
猜你喜欢
  • 1970-01-01
  • 2019-04-18
  • 2021-03-08
  • 2020-01-06
  • 1970-01-01
  • 2019-09-29
  • 2020-04-21
  • 1970-01-01
  • 2022-08-05
相关资源
最近更新 更多