📌
Nextjsでseeder用のtsファイルを実行したい
問題点
prismaを使って開発をしている時にSeeder用のtsファイルを実行したかったのですが、
以下のようなerror達が発生してしまいtsファイルの実行ができなかった
SyntaxError: Cannot use import statement outside a module
Can't run my Node.js Typescript project TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /app/src/App.ts
SyntaxError: Cannot use import statement outside a module
解決方法
結論
nextjsのtsconfig.jsonとは別に、commonjs用のtsconfig.jsonを作成する
実際にやった解決方法
-
tsconfig.local.json
を作成 -
tsconfig.local.json
にcompilerOptions
を設定
tsconfig.local.json
{
"compilerOptions": {
"module": "CommonJS"
}
}
-
package.json
にseeder用のnpm scriptを追加
package.json
"scripts": {
...
"seed": "ts-node --project tsconfig.local.json ./src/db/seed.ts"
}
- npm scriptを実行
npm run seed
補足
tsファイルをcommandで実行するためts-node
のinstallが必要
npm i ts-node
解決のため参考にしたサイト
Discussion