TypeScript + Node.js 開発環境構築ガイド!ts-nodeとnodemonで効率アップ
生徒
「TypeScriptを使って、背後で動くシステム(バックエンド)を作ってみたいです!でも、設定が難しそうで迷っています。」
先生
「Node.jsという仕組みを使えば、TypeScriptでサーバー側のプログラムを書くことができますよ。ts-nodeやnodemonという道具を使うと、初心者でも快適に開発が始められます。」
生徒
「具体的にはどうやって準備をすればいいんですか?パソコンに詳しくなくても大丈夫でしょうか?」
先生
「もちろんです!一つずつ手順を追っていけば、誰でも自分のパソコンに開発環境を作ることができます。それでは、基本的な構築方法を見ていきましょう!」
1. TypeScriptとNode.jsの関係とは?
プログラミングをこれから始める方にとって、最初にぶつかる壁が用語の意味です。まず、今回使用するNode.js(ノード・ジェーエス)について解説します。通常、JavaScriptやTypeScriptという言葉は、インターネットブラウザ(Google Chromeなど)の中で動くプログラムを指すことが多いです。しかし、Node.jsを使うと、ブラウザの外、つまり自分のパソコン本体やサーバーという場所でプログラムを動かすことができるようになります。
そして、TypeScript(タイプスクリプト)は、JavaScriptに「型(かた)」というルールを追加した言語です。この「型」があるおかげで、入力ミスを事前に防いだり、大人数での開発がスムーズになったりします。今回は、この便利なTypeScriptをNode.jsの上で動かすための準備をしていきます。
初心者の方向けに例えると、Node.jsは「料理を作るためのキッチン」、TypeScriptは「詳細なレシピと食材」のようなものです。キッチンを整えて、正しいレシピで料理を作れるようにするのが、今回の環境構築という作業になります。
2. 開発に必要な道具を揃えよう
環境構築を始める前に、インストールしておくべきソフトウェアがいくつかあります。まずはNode.js本体です。公式サイトからダウンロードできますが、これを入れると自動的にnpm(エヌピーエム)という道具も一緒にインストールされます。npmは、世界中のプログラマーが作った便利な部品(パッケージ)を自分のパソコンに取り込むための「買い物カゴ」のような役割を果たします。
次に、プログラムを書くための専用テキストエディタが必要です。おすすめはVisual Studio Code(VSCode)です。これを使うと、コードの色分けや間違いの指摘を自動で行ってくれるため、初心者でもミスが激減します。これらの準備ができたら、いよいよコマンド入力による設定に入ります。黒い画面(ターミナルやコマンドプロンプト)を使いますが、怖がる必要はありません。決まった文字を入力するだけです。
3. プロジェクトの初期化とTypeScriptの導入
まずは、プログラムを保存するための専用フォルダをパソコンの中に作成しましょう。そのフォルダの中でターミナルを開き、下記のコマンドを入力します。これがプロジェクトの開始合図になります。npm initというコマンドは、「これからここで新しいプロジェクトを始めますよ」と宣言するものです。
npm init -y
次に、TypeScript本体をインストールします。ここでは「開発のときだけ使う道具」としてインストールするため、後ろに特別な指示を付け加えます。
npm install --save-dev typescript
インストールが終わったら、TypeScriptの設定ファイルを作成します。これは、どのようなルールでプログラムをチェックするかを決める説明書のようなものです。
// npx tsc --init を実行すると作成される tsconfig.json のイメージ
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}
この設定ファイルがあることで、TypeScriptは「あ、このルールでコードをチェックすればいいんだな」と理解してくれます。初心者のうちは、中身を全て理解する必要はありません。標準的な設定が最初から書き込まれているので、そのまま進めて大丈夫です。
4. ts-nodeとnodemonをインストールする理由
通常、TypeScriptで書いたプログラムを動かすには、一度「JavaScript」という別の形式に変換(コンパイル)する必要があります。しかし、開発中に一回ずつ変換作業をするのは非常に手間がかかります。そこで登場するのがts-nodeです。
ts-nodeを使えば、変換作業を意識することなく、直接TypeScriptファイルを動かしているかのような感覚で実行できます。さらに、nodemon(ノードモン)を組み合わせることで、ファイルを保存した瞬間に自動でプログラムを再起動してくれるようになります。これにより、コードを書き換えるたびに手動でコマンドを打ち直す必要がなくなります。
インストールには、再びターミナルで以下のコマンドを入力します。
npm install --save-dev ts-node nodemon
これで、開発効率を劇的に上げる最強のペアが揃いました。まさに、全自動で試行錯誤ができる環境が手に入ったことになります。
5. Expressを使ったバックエンド開発の準備
環境が整ってきたところで、実際にウェブサーバーを作るためのフレームワークであるExpress(エクスプレス)を導入してみましょう。ExpressはNode.jsで最も人気のある道具で、これを使うと「特定のURLにアクセスがあったら、このメッセージを返す」という仕組みが簡単に作れます。
TypeScriptでExpressを使う場合は、本体に加えて「型定義ファイル」というものもインストールします。これはTypeScriptがExpressの機能を理解するための翻訳ガイドのようなものです。
npm install express
npm install --save-dev @types/express @types/node
それでは、簡単なサーバーのコードを書いてみましょう。index.tsという名前のファイルを作成し、以下の内容を記述してください。
import express from 'express';
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('こんにちは!TypeScriptの世界へようこそ!');
});
app.listen(port, () => {
console.log(`サーバーが http://localhost:${port} で起動しました!`);
});
このコードは、「3000番という窓口で待機し、誰かがアクセスしてきたら挨拶を返す」という非常にシンプルなサーバープログラムです。これだけで、あなただけのオリジナルサーバーが完成します。
6. 自動起動(nodemon)の設定を完成させる
最後の仕上げとして、package.jsonというファイルに、短い言葉でプログラムを起動できるようにするための設定(スクリプト)を書き込みます。このファイルを開き、"scripts"という項目を以下のように書き換えてください。
"scripts": {
"start": "node index.js",
"dev": "nodemon index.ts"
}
これで、ターミナルにnpm run devと入力するだけで、nodemonが起動し、ts-node経由でTypeScriptプログラムが走り出します。以降は、コードを変更して保存するたびに、画面が自動で更新されるようになります。
初心者のうちは、この「保存したら即反映される」というリズムが、学習の楽しさを大きく支えてくれます。エラーが出たときもすぐに気付けるため、上達も早くなります。
7. エラーが出たときの対処法とコツ
環境構築中、どうしても赤い文字(エラーメッセージ)が出てしまうことがあります。しかし、プログラミングの世界ではエラーは「失敗」ではなく「ヒント」です。特によくあるのが「コマンドが見つかりません」というエラーですが、これは多くの場合、インストールが正しく完了していないか、入力した文字が1文字だけ間違っていることが原因です。
例えば、typescriptをtypescryptと書いてしまったり、スペースを忘れていたり。まずは落ち着いて、入力した文字を一行ずつ見直してみましょう。また、パソコン自体を再起動したり、一度node_modulesというフォルダを削除して、再度npm installをやり直すことで解決することも多いです。
一つずつ問題を解決していくプロセスこそが、エンジニアとしての基礎体力を養う貴重な経験になります。焦らず、ゆっくりと進めていきましょう。
8. 次のステップへの道しるべ
開発環境が無事に構築できたら、次は何をすればいいのでしょうか?まずは、先ほど作ったExpressサーバーを改造して、いろいろな情報を表示させてみるのがおすすめです。例えば、自分の名前を表示したり、現在の日時を表示したりするプログラムを追加してみましょう。
また、TypeScriptの最大の特徴である「型」を意識して、変数(データを入れる箱)に名前や数字を正しく入れる練習をすることも大切です。今回の環境構築はあくまでスタート地点ですが、ts-nodeとnodemonがあるおかげで、あなたはすでにプロの現場に近い環境で学習を始めていることになります。この快適な環境を使い倒して、たくさんのコードを書いてみてください。