Node.js 为什么盖茨比不再识别站点目录中的组件?
当我想在Node.js 为什么盖茨比不再识别站点目录中的组件?,node.js,reactjs,npm,gatsby,Node.js,Reactjs,Npm,Gatsby,当我想在gatsby node.js文件中添加功能时,我有一个运行良好的gatsby站点,并安装了npm slug。新代码不起作用,所以我将其还原,但我无法使其再次起作用。在执行gatsby develope时,我会看到默认的404页面,并显示以下消息: 现在还没有一页/ 虽然我没有更改文件src/pages/index.js。 显然,我在index.js文件中有一个组件,但盖茨比不认识它。 我试图删除节点\ u模块,包锁.js和缓存,然后执行npm安装,但没有成功。 我甚至试着克隆我的回购协议
gatsby node.js
文件中添加功能时,我有一个运行良好的gatsby站点,并安装了npm slug
。新代码不起作用,所以我将其还原,但我无法使其再次起作用。在执行gatsby develope
时,我会看到默认的404页面,并显示以下消息:
现在还没有一页/
虽然我没有更改文件src/pages/index.js
。
显然,我在index.js
文件中有一个组件,但盖茨比不认识它。
我试图删除节点\ u模块
,包锁.js
和缓存
,然后执行npm安装
,但没有成功。
我甚至试着克隆我的回购协议,但我得到了同样的错误。
我试着创建一个新的盖茨比网站,它可以正常工作,所以我不知道发生了什么
为什么会这样?让我知道我是否应该发布更多的代码从我的项目
谢谢。我终于解决了。 我一直在应用程序中使用Auth0来处理身份验证。我不知道突然出错的确切原因,但是
gatsby node.js
中的一些代码如下所示:
// Implement the Gatsby API “onCreatePage”. This is
// called after every page is created.
exports.onCreatePage = async ({ page, actions }) => {
const { createPage } = actions
// page.matchPath is a special key that's used for matching pages
// only on the client.
if (page.path.match(/^\//)) {
page.matchPath = "//*"
// Update the page.
createPage(page)
}
}
将其更改为:
// Implement the Gatsby API “onCreatePage”. This is
// called after every page is created.
exports.onCreatePage = async ({ page, actions }) => {
const { createPage } = actions
// page.matchPath is a special key that's used for matching pages
// only on the client.
if (page.path.match(/^\/account/)) {
page.matchPath = "/account/*"
// Update the page.
createPage(page)
}
}
组件再次加载。您在
gatsby node.js
中引入了哪些更改?最好包含所有相关的代码片段,甚至在网上重新创建项目。