自分のマシンでExercismの演習を解くために、JavaScriptをローカルにインストールする方法を学びます。
このトラックでは、JavaScriptを動かすための実行環境として、最初から最後までNode.jsを使います。つまり、お使いのコンピューターでJavaScriptを実行するときは、常にNode.jsを使うことを前提としています。
多くのマシンにはNode.jsがあらかじめインストールされていたり、以前にインストールされていたり、何かの依存関係として入っていたりします。 ですから、何をするにしても、まずインストールされているかどうかを確認しましょう。
Terminal、cmd、Powershell、bash、...)を開きますnode -vNode.jsがインストールされていれば、バージョンが表示されます。
このバージョンはメモしておきましょう。
Node.jsがインストールされていなければ、エラーが表示されます。
たいていは、'node' is not recognisedのような内容です。
Node.jsのウェブサイトにアクセスしてみましょう。
すると、_2つ_のバージョンが表示されます(OSが自動的に判別された場合。そうでなければ、まずOSを選択してください)。
node -vで表示されたバージョンがそのどちらかと一致していれば、そのままで大丈夫です。
一致していない場合は、Node.js LTSを使うことをおすすめします。
アップグレードでシステムの何かが壊れてしまうのが心配な場合は、すべて問題ないものとしてそのまま進めてもかまいません。
ただし、予期しないことが起きたときにサポートできない場合があります。
Node.jsをインストールする方法はいくつかあります。
どちらの方法もWindows、macOS、Linuxに対応しています。どれを選べばよいかわからない場合は、インストーラーを使うのがいちばん簡単です。
インストーラーが完了したあと、パッケージマネージャーでの作業が終わったあと、あるいはバイナリをコピーして手順どおりに進めたあとは、すべてうまくいっているか確認しておきましょう。
Terminal、cmd、Powershell、bash、...)を開きますnode -v表示されるバージョンは、ウェブサイトに載っているものと一致しているはずです。
[!NOTE] _新しい_ターミナルウィンドウを開くことが大切です。 すでに開いているターミナルウィンドウは、インストールが完了したあとに更新されていない可能性があります。 つまり、開いたままのターミナルは、新しいプログラムがインストールされたことを認識していません。
[!IMPORTANT] > ヘルプ:
'node' is not recognised公式のインストーラーを使った場合は、
PATHは自動的に設定されているはずです。ただし、シェルがグローバルにインストールされたモジュールを見つけられない場合や、Node.jsをソースからビルドした場合は、npmのバイナリを含めるようにPATHを更新してください。macOSとLinuxでは、次の内容を
~/.bash_profileまたは~/.zshrcに追加すれば設定できます。export PATH=/usr/local/share/npm/bin:$PATHWindowsでは、スタートメニューを開いて「environment variables」を検索します。
PATHの項目を編集して、ここにnpmバイナリへのパスを_追加_する必要があります。 通常、これらはC:\Program Files\nodejsにあります。 ここをFile Explorerで開くと、node.exe、npm.bat、npx.batが見つかるはずです。開いているターミナルをすべて閉じて、新しいターミナルを開いてください。
このトラックに対応した、バージョン管理されたパッケージマネージャーを使うには、corepackを一度だけ有効にする必要があります。
corepack enable pnpm
お使いのOS用のExercism CLIをダウンロードするには、こちらの手順に従ってください。
CLIのセットアップと設定が終わったら、最初の演習hello-worldをダウンロードしましょう。
exercism download --exercise=hello-world --track=javascript
次に、各演習でテストを実行するためのツールが必要になります。 それらは、各演習のディレクトリで次のコマンドを実行するとインストールできます。
corepack pnpm install
このトラックはpnpmに切り替わったので、ディスク容量を気にする必要はありません。 pnpmを見てみましょう。各パッケージの各バージョンが、ディスク上にひとつしかインストールされないようにしてくれます。
でも、corepackとは何で、なぜこれでうまくいくのでしょうか?
JavaScriptトラックを進めるのにこの情報は必要ありませんが、いま何が起きたのかを知りたいという方は、次の段落を読んでみてください。
これは、
corepackがNode.jsに同梱されているツールだからです。上記の手順でインストールされたNode.jsに付属しています。 これはパッケージマネージャーpnpmをインストールできます。システムの設定も行います。corepackコマンドは、package.jsonファイルを探します。このファイルは_各_演習フォルダーにあります。 そして、packageManagerを確認し、それがpnpmと一致すれば、そのまま処理を続けます。必要であれば、先にpnpmをアップグレードします。 このファイルには、上に挙げた"dependencies"も記載されていて、それらはpnpmによってダウンロードされ、ローカルのキャッシュに置かれます。
package.json内のスクリプトは、ローカルキャッシュにあるバイナリを使います。テストの実行に使われるのはこれらのスクリプトで、exerciseの説明に記載されています。