網站搜尋

typescript - NexusJS 錯誤:TypeError:類別建構函式 GraphQLNonNull 不能在沒有使用 'new' 的情況下被調用


我在嘗試學習 Nexus,但遇到了一些問題。

我建立了 index.ts 檔案並寫入以下程式碼:

const User = objectType({
  name: 'User',
  definition(t) {
    t.id('id')
    t.string('name')
  }
})

export const schema = makeSchema({
  types: [User],
  outputs: {
    typegen: __dirname + '/generated/nexus.generated.ts',
    schema: __dirname + 'schema.graphql'
  }
})

然後我嘗試運行腳本:

ts-node-dev --transpily-only --no-notify index.ts

並在控制台中獲得錯誤:

TypeError: Class constructor GraphQLNonNull cannot be invoked without 'new'
    at SchemaBuilder.missingType (/home/zelleaz/Projects/mui/server/node_modules/nexus/src/builder.ts:1099:19)
    at SchemaBuilder.getOrBuildType (/home/zelleaz/Projects/mui/server/node_modules/nexus/src/builder.ts:1448:17)
    at /home/zelleaz/Projects/mui/server/node_modules/nexus/src/builder.ts:794:37
    at Array.forEach (<anonymous>)
    at SchemaBuilder.buildNexusTypes (/home/zelleaz/Projects/mui/server/node_modules/nexus/src/builder.ts:782:38)
    at SchemaBuilder.getFinalTypeMap (/home/zelleaz/Projects/mui/server/node_modules/nexus/src/builder.ts:835:10)
    at Object.makeSchemaInternal (/home/zelleaz/Projects/mui/server/node_modules/nexus/src/builder.ts:1684:92)
    at makeSchema (/home/zelleaz/Projects/mui/server/node_modules/nexus/src/makeSchema.ts:14:49)
    at Object.<anonymous> (/home/zelleaz/Projects/mui/server/index.ts:11:33)
    at Module._compile (internal/modules/cjs/loader.js:1201:30)

我試過重新安裝 Nexus,但它還是無法運作

專案檔案和目錄:

/node_modules
index.ts
package.json:
 dependencies: apollo-server, graphql, nexus
 dev-dep: ts-node-dev typescript
package-lock.js

答案#1

降級到 graphql@^15.8.0 為我解決了這個問題

答案#2

NexusJS 目前不支援 graphql 16 以上版本,所以你必須使用較舊的版本。在我的情況下,14.5.8(來自 GitHub 的 nexus 範例)可以正確運作。有一個針對 graphql 16+ 版本的修正拉取請求:https://github.com/graphql-nexus/nexus/pull/977