我使用 Apple M1 Max 处理器并使用 MAC os Ventura 13.0。
我使用的是 Node v18.12.1 (npm v8.19.2)
使用后
gatsby new
并设置站点,将其安装到 Gatsby 4,并 React 到 18.1.0 并运行此命令后:
npm install gatsby@next --legacy-peers-deps
我在 package.json 文件中看到 Gatsby 现在设置为:5.0.0-next.16。
然后运行命令:
nvm install 18
然后运行命令:
npm run develop
但是后来我遇到了以下错误:
缺少调用“building-schema”的 onError 处理程序,错误为 '错误:无法将以下值创建为 TypeComposer:
GraphQLScalarType({ name: "Date", description: "日期字符串,例如 2007-12-03,符合ISO 8601标准表示 使用公历的日期和时间。”,specifiedByURL: 未定义,序列化:[函数字符串],parseValue:[函数 String], parseLiteral: [函数 parseLiteral], 扩展: { }, astNode:未定义,扩展ASTNodes:[]})。'。堆栈跟踪是“错误: 无法将以下值创建为 TypeComposer:
GraphQLScalarType({ name: "Date", description: "日期字符串,例如 2007-12-03,符合ISO 8601标准表示 使用公历的日期和时间。”,specifiedByURL: 未定义,序列化:[函数字符串],parseValue:[函数 String], parseLiteral: [函数 parseLiteral], 扩展: { }, astNode: 未定义,扩展ASTNodes: [] }).
这是苹果芯片的问题还是我遗漏了什么?
显然,在我删除
package-lock.json
文件并删除 node_modules
文件夹后,我运行了 gatsby develop
并且运行了。
我还没弄清楚之前的问题是什么,但现在可以了。
这是由于
graphql
安装的多个版本造成的。您需要将 resolutions
属性添加到您的 package.json
文件中,以便仅安装一个版本的 graphql
。
"resolutions": {
"graphql": "16.0.0"
}
安装了
graphql
或gatsby
的多个版本,特别是对于那种monorepo
类型的项目。
当我简单地通过yarn安装graphql时,它对我有用。不知道我的 Gatsby 项目在依赖项中需要 graphql。纱线添加 graphql 修复了它。