有没有一种方法可以避免在Gatsby中构建带有某些路径的页面?

时间:2020-09-03 17:21:11

标签: gatsby

我们知道Gatsby会自动在目录src / pages /中构建页面,其路径与.js文件的名称相同。例如,我有一个文件src / pages / example.js,当我在终端中运行命令gatsby develop时,该网页将在“ localhost:8000 / example”站点上可用。

但是,考虑到我不允许使用路径“ / example”来构建网页,有没有办法将路径“ / example”列入黑名单,每当我们尝试使用黑名单进行构建时,都停止构建/开发过程路径并在终端上报告错误,例如“不允许您使用黑名单路径构建页面:/ example”?

为了给您更多背景信息,我现在在Docusaurus中建立了一些网站,网址为“ www.example-domain.com/example”。我希望Gatsby在“ www.example-domain.com/example”上构建网站时报告错误,并告诉开发人员此路径已在使用中,以便开发人员可以将example.js的名称更改为其他名称,例如另一个example.js。

1 个答案:

答案 0 :(得分:2)

我想您可能可以为此目的使用onCreatePage事件。

在您的gatsby-node.js中:

exports.onCreatePage = ({ page, actions, reporter }) => {
  
  // Page is an object which amongst other things contains the path
  if (page.path.match(/example/) {
    reporter.panic('Stop! in the name of love...')
  }
}

不确定最好的方法是那里的动作。如果您打印到控制台,可能会错过它。您可以process.exit(1)或可能重命名该文件。也许这足以使您步入正轨。