Node.jsについて、何ができるか、npmとの関係、GitHub Actionsでの実行、などについてまとめました。
Node.jsとは?
Node.jsは、ブラウザの外でJavaScriptを動かすための実行環境です。JavaScriptを使って、サーバーの処理やパソコン上の操作ができます。
Node.jsでできること
- パソコンにインストールすると、ローカル環境でプレビュー用のサーバが立ち上がる
- サーバー側でリクエストを受け取り、データベースとやり取りして結果を返す
- ソースコードを圧縮したり、MarkdownファイルをHTM変換(ビルド)する
- Node.jsのインストールで、npmというツール(JavaScript標準のパッケージマネージャー)も一緒に入る
- npmを使えば、世界中の開発者が公開した数十万以上の便利コードを、コマンド1つで自分のパソコンに入れて実行できる
利用時の注意点
- npmを介して悪意のあるパッケージがインストールされてしまうことに注意(過去、有名なパッケージと1文字違いの名前で偽物を置く手口や、正規のパッケージが乗っ取られて不正なコードを仕込まれた事例があった)
- npmでパッケージをインストールする際は、公開元や利用実績などを確認
- Node.js本体やパッケージは更新されるので、アップデートが必要
Node.jsはすごく便利ですが、インストールするかどうかは少し慎重になってもいいのかな?と思いました。
GitHub Actions上でNode.jsを使える
Node.jsをパソコンに入れたくない、セキュリティの関係で入れられない、という場合は、GitHubにあるGitHub Actions(ギットハブ・アクションズ)上で、Node.jsを実行することができます。
GitHub Actionsは、GitHubへのプッシュやプルリクエストをきっかけに、GitHubが用意する仮想マシン上で処理を自動実行できるCI(自動処理)の仕組みです。
GitHub Actionsを使うメリット
- ローカルにNode.jsをインストールしなくて良い
- GitHubのなかだけで完結する
- 無料で使える(パブリックリポジトリは標準ランナーの実行時間が無料、プライベートリポジトリもFreeプランで月2,000分まで無料)
.github/workflows/ディレクトリにYAML形式の設定ファイルを置くだけで動く
GitHub Actionsを使うデメリット
- GitHub Actions上で動くので、ローカル環境では確認ができない
WEB開発してるほとんどの人はNode.jsをインストールしていると思いますが、インストールできない環境だったり、インストールしたくない人にとっては、GitHub Actionsは良い選択肢です。
よくある質問(FAQ)
Q. Node.jsとブラウザのJavaScriptは何が違いますか?
動かす場所と、できることが違います。ブラウザのJavaScriptは画面の操作やボタンの反応などを担当し、パソコンのファイルには基本的に触れません。Node.jsはブラウザの外で動くため、ファイルの読み書きやサーバー処理など、パソコン側の操作ができます。言語としては同じJavaScriptです。
Q. Node.jsは自分のパソコンに入れて使うものですか?
はい。公式サイトのインストーラーなどでMacやWindowsに入れて使います。入れておくと、Astroなどのプロジェクトでnpm run devを実行し、公開前のサイトを手元のブラウザ(localhost)で確認できます。
Q. Node.jsを学ぶのにJavaScriptの知識は必要ですか?
必要です。Node.jsはJavaScriptを動かす環境であって、別の言語ではありません。まずJavaScriptの基本を身につけ、そのうえでNode.js特有のファイル操作やサーバーの書き方を学ぶ、という順番になります。
Q. Node.jsとnpmは別物ですか?
別物ですが、セットで配布されます。Node.jsがJavaScriptを動かす土台、npmが公開された部品を集めて管理するツールです。Node.js本体をインストールすると、npmも一緒に入ります。
Q. GitHub ActionsでNode.jsを動かすワークフローファイルはどこに置きますか?
リポジトリの.github/workflows/ディレクトリに、.ymlまたは.yaml拡張子のYAML形式で置きます。GitHubはこのディレクトリ配下のファイルを自動で検出し、指定したイベント(pushなど)をきっかけに実行します。