この記事を書いた人
082P
現在は、医療系システムエンジニアをやっています。得意言語はRubyですが、仕事柄PHPやJavascriptに触れる機会が多いです。記事に関しては、RubyのRuby on Rails、PythonのDjangoなど、Webアプリケーションおよびデータベース系の記事を書くことが多いです。趣味でゲーム配信とボカロPをやってます。既婚者で子供が2人おります。
Node.jsとは?
Node.js(一般に「Node」と略されます)は、サーバーサイドでJavaScriptを実行できる環境です。
もともとJavaScriptはブラウザ内でしか実行できない言語でしたが、Node.jsを使うことでブラウザ以外(例えばサーバーやコマンドラインツール)でもJavaScriptが使えるようになりました。
Node.js の特徴
- JavaScriptの実行環境
- Googleが開発した高速なJavaScriptエンジン「V8」を使用しているため、非常に高速です。
- サーバーサイドの開発に適しており、バックエンドのAPIサーバーやバッチ処理などをJavaScriptで書けるようになります。
- 非同期処理とイベント駆動モデル
- Node.jsは、非同期I/Oを得意としており、リクエスト処理がブロックされないため、高いスケーラビリティを持っています。
- シングルスレッドですが、効率よく多数のリクエストを捌くことが可能です。
- npm(Node Package Manager)
- Node.jsには、npm(Node Package Manager)という巨大なパッケージエコシステムが付属しており、数十万ものオープンソースライブラリを簡単にインストールして使うことができます。
- 例えば、WebフレームワークのExpressや、CSSプリプロセッサのSassなど。
Node.js の主な用途
- サーバーサイドアプリケーション
- REST APIやGraphQL APIを構築。
- WebSocketを使ったリアルタイムアプリケーション(例:チャットアプリやゲーム)。
- ツール・スクリプト作成
- 自動化スクリプトやビルドツール(Webpack、esbuild など)。
- 開発補助ツール(Prettier、ESLint など)。
- フロントエンド開発の補助
- モダンなフロントエンド開発(React, Vue.js, Angularなど)では、Node.jsを使ってライブラリやフレームワークを管理し、開発環境を構築します。
- IoTやデスクトップアプリケーション
- IoTデバイスの制御。
- デスクトップアプリケーション開発(Electronを使ってSlackやVS Codeのようなアプリを構築)。
Node.js を使う場面
- Railsで Webpacker や Vite を使う場合(フロントエンドのビルドや依存管理)。
- フロントエンドフレームワーク(React, Vue.js)を使うプロジェクト。
- REST APIサーバーやリアルタイム通信が必要なプロジェクト。
Node.jsは「サーバーサイドのJavaScript実行環境」であり、フロントエンドとバックエンド両方で活躍できるツールです!
Node Version Manager (NVM)のインストール
NVMを使うと、複数のNode.jsバージョンを簡単に切り替えられるため、開発環境に最適です。
公式ドキュメント通りにインストールします。
ターミナルで以下のコマンドを実行してください。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
インストールはすぐ終わります。
nvmのバージョン確認
インストールが成功しているか、バージョン確認します。
ターミナルを再起動する必要があります。
nvm -v
2024年12月現在のバージョンは「0.40.1」が入りました。
% nvm -v
0.40.1
Node.jsのインストール
インストールしたnvmを使ってNode.jsをインストールします。
ターミナルで以下のコマンドを実行してください。
nvm install --lts
これでNode.jsのLTSバージョンがインストールされます。
LTS(Long-Term Support)バージョンとは、特定のソフトウェアのバージョンに対してサポート期間を長く設定したもので、安定性と信頼性が特徴です。
Node.jsのバージョン確認
インストールされているか、ターミナルでバージョン確認します。
2024年12月現在では「v22.12.0」が入りました。
node -v
Node.jsのインストール、お疲れ様でした!
最後までお読みくださり、ありがとうございます!