mkdir tests && cd tests
yarn init -y
yarn global add typescript ts-node
yarn add -D @tsconfig/node18-strictest-esm typescript ts-node tslib @types/node concurrently nodemon
Referencetsconfig.json
ファイルを作成し、以下の設定を追加します:{ "extends": "@tsconfig/node18-strictest-esm/tsconfig.json", "compilerOptions": { "baseUrl": ".", "rootDir": "src", "outDir": "dist", "noImplicitAny": true, "removeComments": true, "sourceMap": true, "module": "CommonJS", }, "include": [ "src/**/*" ] }
package.json
ファイルに以下のスクリプトを追加します:
"scripts": {
"dev": "ts-node-esm src/index.ts",
"build-ts": "tsc",
"build": "yarn build-ts",
"debug": "yarn build && yarn watch-debug",
"serve-debug": "nodemon --inspect dist/index.js",
"serve": "node dist/index.js",
"start": "yarn serve",
"watch-debug": "concurrently -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"yellow.bold,cyan.bold,green.bold\" \"npm:watch-ts\" \"npm:serve-debug\"",
"watch-node": "nodemon dist/index.js",
"watch-ts": "tsc -w",
"watch": "concurrently -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"yellow.bold,cyan.bold,green.bold\" \"npm:watch-ts\" \"npm:watch-node\""
}
Note:
- ts-node は開発環境で ts ファイルをコンパイルせずに実行するためのものです。例:ts-node src/index.ts
- tsconfig.json の "module": "CommonJS" は、ts-node-esm が ES モジュールの形式でファイルをインポートできるようにするためです。
- tsconfig.json の "sourceMap": true は、ソースマップを生成し、node dist/index.js を実行した後に src/index.ts をデバッグできるようにするためのものです。ts-node を使用する場合、この設定は必要ありません。