【入門編】 ts-nodeの設定とregisterオプション – TypeScript実践ガイド

こんにちは。TypeScriptの世界へようこそ!

「TypeScriptを書いてみたい!」とワクワクして環境構築を始めたものの、`tsconfig.json`やら`ts-node`やら、聞き慣れない単語が並んで「うわっ…」とブラウザを閉じそうになった経験、誰にでもあります。安心してください、最初はみんなそうです。

今日は、TypeScriptを「ただ書くだけ」の状態から、「爆速で動かして快適に開発する」ための、ちょっと裏技的な設定のお話をしますね。

—

そもそも「ts-node」って何者?

TypeScriptのコードは、そのままではコンピュータが理解できません。一度「JavaScript」という翻訳機を通す必要があります(これを「コンパイル」や「トランスパイル」と呼びます)。

普通なら、一度JavaScriptに変換してから実行するのですが、これだと「修正→変換→実行」という手順が必要で、ちょっと面倒ですよね。

そこで登場するのが`ts-node`です。
これは、TypeScriptのコードをその場で翻訳して、即座に実行してくれる「通訳兼実行係」のような存在です。これがあれば、JavaScriptに変換する手間をすっ飛ばして、TypeScriptを直接動かせます。

—

爆速化の秘訣:`transpileOnly` を覚えよう

`ts-node`はとても優秀なのですが、デフォルトだと「このコード、文法的に間違ってないかな?」と、すごく細かくチェックしてから実行しようとします。これが積み重なると、ファイルが増えるたびに実行が遅くなっていくんです。

そこで使いたいのが `transpileOnly` というオプションです。

「細かいチェックは後回しにしていいから、とにかく速く動かして!」という指示ですね。お買い物で例えるなら、レジで一つずつ厳重に検品してもらうのではなく、「とりあえずカゴの中身を全部通して!」とお願いするイメージです。

設定の書き方(tsconfig.json)

プロジェクトのルートにある `tsconfig.json` に、こんな風に追記してみてください。

{
“ts-node”: {
// これをtrueにすると、型チェックをスキップして爆速になります
“transpileOnly”: true,
// 実行時に使う設定ファイルを明示的に指定できます
“project”: “tsconfig.json”
},
“compilerOptions”: {
“target”: “ESNext”,
“module”: “CommonJS”,
“strict”: true
}
}

—

実行時に「環境変数」で制御する

開発中、「普段は速いほうがいいけど、リリース前にはちゃんと型チェックを走らせたいな」という場面が出てきます。そんなとき、わざわざ設定ファイルを書き換えるのは面倒ですよね。

そんなときは、コマンドを実行する瞬間に「環境変数」というメモを渡してあげましょう。

ターミナルで実行する魔法のコマンド

例えば、こんなふうにコマンドを入力します。

TS_NODE_TRANSPILE_ONLY=true を頭につけるだけで、即座に設定が反映されます
TS_NODE_TRANSPILE_ONLY=true npx ts-node src/index.ts

これだけで、「この時だけは高速モードで!」と `ts-node` に指示が出せます。
※WindowsのPowerShellを使っている場合は、`$env:TS_NODE_TRANSPILE_ONLY=”true”; npx ts-node src/index.ts` のように書く必要がありますが、基本の考え方は同じです。

—

「register」オプションについて

たまに、古いプロジェクトの設定ファイルなどで `-r ts-node/register` という記述を見かけるかもしれません。

これは、「このプログラムを動かすときは、TypeScriptも扱えるように準備しておいてね」という「事前登録」のようなものです。主にテストを実行するときなどに使われます。最近はあまり深く考えなくても動くことが多いですが、「TSを使うためのパスポートを提示しているんだな」くらいの認識で大丈夫ですよ。

—

最後に:つまずいたときのために

ここまで読んで、「なんだか設定が多くて大変そうだな」と感じたかもしれません。でも、TypeScriptの環境構築は、「一度設定してしまえば、あとは開発に集中できる」という投資のようなものです。

もし動かなくてエラーが出ても、それはあなたが悪いわけじゃありません。コンピュータが少しだけ気難しいだけです。そんなときは、一息ついてコーヒーでも飲みながら、一つずつ設定を見直してみてください。

TypeScriptでの開発は、慣れると「あ、ここバグになりそう!」と実行する前に気づけるようになるので、本当に楽しくなりますよ。焦らず、一歩ずつ進んでいきましょうね!

応援しています。困ったことがあったら、またいつでも聞きに来てください!

コメント

タイトルとURLをコピーしました