我正在使用 gatsby 构建一个非常大的网站(5k+ 页,300k+ 图像)。源数据不可靠(例如,经常缺少字段),这会导致createPage过程中出现错误。
问题是,如果单次createPage运行引发错误,则整个构建都会失败。所以有时 5k 页面构建成功,然后整个事情因为一个错误而崩溃。
我尝试将页面创建包装在 a 中try...catch,但没有任何区别:
try {
createPage({
path: node.slug,
component: path.resolve(`./src/templates/BlogPost.js`),
context: {
id: node.id,
},
});
} catch (error) {
console.log(error);
}
(我还尝试在组件级别检查数据并在null不完整时返回,但createPage仍会创建一个(空白)页面,我不希望这样:我只想在数据错误时跳过该页面)
所以我的问题是:如何在构建过程中处理错误/失败的页面创建,以便跳过失败的页面而不是使整个构建崩溃?
注意这几乎是这个问题的重复,但是那里的解决方案对我不起作用:如果数据不正确,我无法呈现错误页面,如果可能的话,我需要完全跳过该页面