こんにちは。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での開発は、慣れると「あ、ここバグになりそう!」と実行する前に気づけるようになるので、本当に楽しくなりますよ。焦らず、一歩ずつ進んでいきましょうね!
応援しています。困ったことがあったら、またいつでも聞きに来てください!

コメント