Open5
Node.js で TypeScript/ESM native な環境構築
いつもどおり ts-node
, typescript
らへん入れて行けるやろと思ったがちょっとだけ詰まったのでメモっておく。
Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
警告でも出るようにまず EMS native にしておくためには、package.json への type: "module"
が必須。
一旦は ts-node
を使って実行できるのをゴールとしてみる。
$ npm i -D ts-node typescript
tsconfig.json については sandbox 程度ならまあまあガンガンな感じで一旦いいのでは。
{
"compilerOptions": {
"module": "ESNext",
"target": "ESNext",
"moduleResolution": "node",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"isolatedModules": true,
"noEmit": true,
"strict": true,
"lib": [
"ES2020",
"DOM",
]
}
}
ts-node src/index.ts
だとダメなんだっけと思ったが、結果的にこうだといけた。
$ node --loader ts-node/esm src/index.ts