趣味でgraphqlを触っていて、技術選定として、
ApolloServer + Prisma + nexusの組わせを
使っていたが、nexusの
####型作成コマンド
ts-node --transpile-only src/schema // src/schemaのパスは各自のshcema定義ファイルを指定
によるtypesが適用されなかった。
原因は以下のコードだった。
const schema = makeSchema({
types: [ NexusPrismaScalars, types ],
plugins: [
connectionPlugin(),
fieldAuthorizePlugin()
],
outputs: { // こいつが原因!!!!!
schema: path.join(__dirname, 'generated/schema.gen.graphql'),
typegen: path.join(__dirname, 'generated/nexusTypes.gen.ts'),
},
contextType: {
module: path.join(__dirname, './types/context.ts'),
export: "Context"
},
sourceTypes: {
modules: [
{ module: "@prisma/client", alias: "prisma" },
]
},
})
どうやら型作成コマンド時に、 outputsのパスが、
型作成コマンドで指定したスキーマファイルのパスと同じ階層か、
指定したパス以下の階層を指定してやらなければ適用されないらしい。
もしそれでもtypescriptのタイプが敵意されなかったらouputsの
パスをいじくってみると正常に動くと思う... ...