27
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

npmパッケージのローカルインストール

Last updated at Posted at 2017-02-07

#0.はじめに

Node.jsのパッケージ管理ツールであるnpmですが、通常はインターネットに接続している環境で動作するものです。
しかし、ローカル(イントラネット)の場合でインターネットに接続できない場合、npmでのパッケージ追加ができません。
このような場合でもローカルインストールできる方法をまとめてみました。

#1."npm pack"ではダメな理由
たとえば、forever(Node.js用のデーモンマネージャー)をインストールしたい場合、インターネットに接続できる環境で以下のコマンドを実行するとインストールができます。

npm install -g forever

これをパッケージ化するには以下のコマンドを使います。

npm pack forever

すると「forever-X.X.X.tgz」のようなファイルが生成されます。
これをインストールしたい環境(ローカル環境)へ持っていき

npm install -g forever-X.X.X.tgz

とすればインストール・・・できないのです。
依存関係でエラーが出てきてしまいます。
#依存関係にある全てのパッケージをpackしてしまえばインストール可能ですが・・・

よって別の方法を取りたいと思います。

#2.npmboxを使う
npmboxは依存するモジュールごとパッケージ化する便利なものです。
以下、手順です。
なお、前提として以下のようにします。

  • インターネットに接続できる環境(これを「インターネット環境」)とインターネットに接続できない環境(これを「イントラネット環境」)の2つがある
  • 「イントラネット環境」にforeverをインストールすることが目的
  • 両環境ともnpmboxは未インストール

####2.1.インターネット環境にnpmboxをインストール

npm install -g npmbox

####2.2.npmboxを用いnpmboxとforeverをパッケージ化

npmbox npmbox forever

以下の2ファイルが作成されます。
npmbox.npmbox
forever.npmbox

####2.3.イントラネット環境にnpmboxをインストール
npmbox.npmboxを使ってnpmboxをインストールします。
ここではまだnpmbox自体がインストールされていないためnpmにてインストールします。

tar --no-same-owner --no-same-permissions -xvzf npmbox.npmbox

展開すると.npmbox.cacheというディレクトリが作成されるはずです。
展開された.npmbox.cacheを使ってnpmboxをインストールします。

npm install --global --cache ./.npmbox.cache --optional --cache-min 99999999999 --shrinkwrap false npmbox

これでnpmboxがインストールされました。

#途中エラーが出る場合はキャッシュのクリアを試してください

npm cache clean

####2.4.イントラネット環境にforeverをインストール
forever.npmboxを使ってnpmboxをインストールします。
npmboxがインストールされたので、npmbox(npmunbox)にてインストールします。

npmunbox -g forever.npmbox

#3.最後に
npmboxは環境構築時(インターネットに接続できる状態時)にインストールしておくことをおススメします。

27
38
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?