こんにちは。 エキサイト株式会社の三浦です。
JavaScriptやTypeScriptでプロジェクトを作る上で、 npm
は必須なツールの一つと言えるでしょう。
PCにグローバルにダウンロードして使うことも出来ますが、場合によっては特定のローカルなディレクトリにダウンロードして使いたくなることもあるかもしれません。
今回は、ローカルなディレクトリに npm
をダウンロードして npm
コマンドを使う方法を紹介します。
npmとは
npm
は、JavaScriptやTypeScriptで使われるパッケージ管理ツールです。
様々なライブラリについて、種類やバージョンを指定してダウンロードできるようにしてくれるもので、プロジェクトを管理していく上で必須なツールと言えます。
また、単にライブラリをダウンロードするだけでなく、任意のコマンドを実行させることも出来ます。
類似のツールとして yarn
というものも存在します。
npm
の使い方は簡単です。
例えば、 sample-library
というライブラリをダウンロードしたい場合は以下のようにコマンドを実行します。
npm install sample-library
package.json
ファイルという、ダウンロードするライブラリ等をまとめたファイルが存在すれば、以下のコマンドだけですべてのライブラリをダウンロードしてくれます。
npm install
この npm
は現在でも開発が進められており、定期的にバージョンアップしています。
そのため、場合によっては、「このプロジェクトでは特定のバージョンの npm
を使いたい」という場面も出てくるでしょう。
そういった状況だと、単にPCにグローバルに npm
をダウンロードするだけでは、PC全体で npm
のバージョンが固定されてしまうので問題があります。
これを解決するためには、以下の方法が考えられます。
- 「
npm
のバージョンを管理してくれるツール」を使うことで、プロジェクトごとにnpm
のバージョンを切り替える - ローカルのディレクトリに
npm
をダウンロードして、それを使用する
今回は、後者の方法について説明します。
ローカルにダウンロードしたnpmでnpmコマンドを実行する方法
さて、実は npm
コマンドは、 npm
というものさえあれば実行できるというものではありません。
npm
コマンドを実行する本体である npm
ファイルは実はJavaScriptで出来ているため、それを実行するための環境が必要になるのです。
それを実現してくれるのが node
です。
上記のダウンロードページに書いてあるように、そもそも npm
はダウンロード時に node
に同梱されています。
npm
をダウンロードする過程で、 node
もダウンロードできるようになっているのです。
先程、 npm
コマンドは以下の方法で実行できると説明しました。
npm install
これだけを見ると node
が必要そうには見えませんが、これは裏側で npm
が node
を自動的に探し、発見して使ってくれているのです。
実態としては、以下のようになっています。
// node を使って npm を実行し、その npm で install を行う node npm install
それを踏まえると、ローカルにダウンロードした npm
を使って npm
コマンドを実行する方法は以下が考えられます。
node npm install というコマンドを実行するようにする
先程説明したように、実態としては npm
コマンドは以下のように実行されています。
node npm install
これをシンプルにそのまま使います。
つまり、 npm
や node
が /path/to/bin
というディレクトリ配下にダウンロードされている場合、以下のように実行するのです。
/path/to/bin/node /path/to/bin/npm install
これで、ローカルにダウンロードした npm
や node
で、 npm
コマンドを実行することが出来ます。
ただし、これだと問題が起きる場合もあります。
npm
コマンドは、単純にライブラリのインストールだけでなく様々なことを実行することが出来ます。
例えば、 npm
コマンドを通して別のJavaScriptファイルを実行することもできるのですが、その実行したいJavaScriptにも node
が必要な場合、そちらは node
を見つけることが出来ずエラーになってしまう場合があるのです。
その場合は、次の方法で解決することが出来ます。
node のパスを通す
そもそも node
を実行する必要があるJavaScriptファイルは、最初に自動的に node
を探し、発見したらそれを使ってくれるようになっています。
通常ローカルにダウンロードされた node
はその探し場所に含まれていないために発見されないのですが、逆に言えば探し場所に含ませさえすれば、自動的に発見・使用してくれるようになるのです。
以下のコマンドで、その探し場所に追加できます。
// /path/to/bin というディレクトリ内に node が入っている場合 export PATH=/path/to/bin:$PATH
こうすれば、後は以下のコマンドで問題ありません。
// npm も node と同じディレクトリにあるなら、パスを指定する必要はない npm install
最後に
JavaScriptやTypeScriptは、今やフロントエンド・バックエンド問わず選択肢として上げられることの多い言語の一つであり、そのため npm
の出番も少なくありません。
今回の記事が役に立てば幸いです。