👪
NestJS+prisma nest-cli.json上のassetsの記述について
APIの構築にNestJSを使用し、ORMにprismaを採用しているとします。そして、prismaからgeneratedされたソース(以下prisma_generated)をsrc外に配置して管理している場合を考えます。この時、デフォルトのコンパイル設定でnest標準のbuildかstartをするとprisma_generatedが見つからないエラーになります。デフォルトの設定ではsrc外のファイルが対象外になるためです。
公式はこちら
必要なコンパイル設定
nest-cli.json上に次の設定を行い、prisma_generatedをoutputされるdistに追加されるようにする必要があります。
{
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"assets": [
{ "include": "../prisma_generated/**/*", "outDir": "./dist/prisma_generated", "watchAssets": true },
]
.
.
.
}
}
※prisma_generatedがsrcと同階層にあります。
ここで注意していただきたいがのが、includeに指定するファイルパスはsourceRootに指定したsrcからの相対パスになることです。また、outDirを例の通り指定しない場合はprisma_generatedというディレクトリが無視され、直下のファイルが全てdist直下に配置されてしまいます。そして、outDirへのファイルパスはincludeとは異なり、nest-cli.jsonから見たパスを指定する必要があることに注意してください。
Discussion