「グローバルな」npmアプリケーションをオフラインサーバーにインストールする必要があります。
通常のアプリケーションは簡単にインストールできます。
npm install
そして、結果のファイルをパックします。手動またはnpm packを使用します。
ただし、インターネットなしでforeverなどのグローバルアプリケーション(何らかのインストールスクリプトがある)をインストールするにはどうすればよいですか?
npm install -g forever
try npmbox 、1つのファイルでオフラインnpmパッケージをインストールできるnpmzipの新しい名前です
Tarballファイルからのものをインストールできます。 npm documentation を確認してください。 npm view forever dist.tarball
でforever tarballのURLを見つけてダウンロードできます。次のようなものを試してください:
curl -so forever.tar.gz `npm view forever dist.tarball 2> /dev/null`
npm install ./forever.tar.gz -g
ただし、すべての依存関係についても同様に行う必要があります。より良い方法があるかもしれませんが、これは私の検索で見つけたものです。
さて...上記のリファレンス(npmboxまたはoffline-npm)で動作するようにしようとした1日後、もっと簡単な方法を思いつきました。 npmboxに感謝します。アイデアは、オンラインアクセスを持つインスタンスからキャッシュを保持し、オフラインで使用することです。
インターネットのあるマシンでは:
1-npmキャッシュをクリアします:npm cache clear
2-パッケージをインストールします。x.y.z:npm install -g **package.x.y.z**
3-キャッシュをフォルダーにコピーします...何でも呼び出しましょう(npmキャッシュはルートフォルダーにあると仮定しますが、それについては絶対にわかりません):cp -R /.npm/* **/cache-whatever-folder**
インターネットのないマシン:
4-インターネットのないインスタンスにこのcache-whatever-folderを持ち込み、その後、キャッシュを消去してインストールします(フォルダーのコピー方法は示しません:)
npm cache clear
npm install --global --cache **/cache-whatever-folder** --optional --cache-min 99999999999 --shrinkwrap false **package.x.y.z**
完了
offline-npm を作成し、すべての依存関係をクリーンな方法でインストールしました。 node-gypを使用しないモジュールの場合、すべてが説明どおりに動作するはずです。
node-gyp
(通常はオンラインでインストールされます)が必要な場合は、〜/ .node-gypをそのオフラインマシンにコピーすることを検討してください。
PM2オフラインインストール:-
RHEL-7のNode-v6.10.3およびNpm-3.10.10でテスト済み
インターネット接続のあるマシンに移動:-
#npm install -g npmbox
#npmbox npmbox
#scp npmbox.npmbox root@offline-server-ip:.
インターネットに接続せずにマシンに移動:-
#ssh root@offline-server-ip
#tar --no-same-owner --no-same-permissions -xvzf npmbox.npmbox
#npm install --global --cache ./.npmbox.cache --optional --cache-min 99999999999 --shrinkwrap false npmbox
インターネット接続のあるマシンに移動:-
#npm install pm2 -g
#npmbox pm2
#scp pm2.npmbox root@offline-server-ip:.
インターネットに接続せずにマシンに移動:-
#npmunbox pm2.npmbox --global
#pm2 ls
npmzip を試してください
npm install -g npmzip
npmzip <package>
現在のディレクトリでtarballを取得します。これは、ターゲットマシンに移動できます。
npmunzip <tarball>
糸 を使用:
インターネットマシン上(ローカルキャッシュの場所を構成する):
yarn config set yarn-offline-mirror ~/yarn-offline-mirror/
オフラインマシン(ローカルキャッシュの場所を構成):
yarn config set yarn-offline-mirror ~/yarn-offline-mirror/
オフラインマシンで、グローバルインストールの場所を確認します。
yarn global bin
(またはyarn config set prefix <file_path>
で設定)
オフラインマシンで、パスに追加します。例えば。:
echo 'export PATH=$PATH:'"$(yarn global bin)" >> ~/.bashrc
source ~/.bashrc # reload
インターネットマシンで、forever
の依存関係をダウンロードします。
mkdir new-cli-forever/
cd new-cli-forever/
yarn add forever
次に、new-cli-forever/yarn.lock
と~/yarn-offline-mirror/
をオフラインマシンにコピーします。 (rm -rf new-cli-forever/
は今でも大丈夫です。)
オフラインマシンで、ローカルキャッシュからforever
をインストールします。
cp /path/to/imported/yarn.lock .
cp -n /path/to/imported/yarn-offline-mirror/* ~/yarn-offline-mirror/
yarn global add --offline forever
rm -f ./yarn.lock
詳細については、私の投稿を参照してください: https://assafmo.github.io/2018/04/11/yarn-offline.html
Package.jsonのbundledDependencies
の依存関係をリストし、npm pack
を実行してtarballを作成します。それを他のマシンに渡して、npm install <tarball>
を取得するか、手動でクラックして開きます。
npmboxは古いです
npm pack
コマンド( npm docs )を使用します。何もインストールする必要はありません。
1つのパッケージ(たとえば、forever
)のみが必要な場合は、次を実行できます。
npm pack forever
このコマンドはそれをキャッシュにフェッチし、tarballを現在の作業ディレクトリに-.tgzとしてコピーします
次に、パッケージを作成したフォルダーから、以下を使用してインストールします。
npm install -g ./forever-x.y.z.tgz
プロジェクト全体をオフラインでインストールする場合は、package.json
という名前のbundleDependencies
にpopertyを含め、このフィールドに必要なすべての依存関係をリストします。
// package.json
"dependencies": {
"archiver": "^2.1.1",
"axios": "^0.16.2",
"body-parser": "^1.18.3"
},
"bundleDependencies": {
"archiver": "^2.1.1",
"axios": "^0.16.2",
"body-parser": "^1.18.3"
}
次にnpm pack
を実行します。
プロジェクト全体と依存関係の.tgz
ファイルが作成されます。
オフラインサーバーにコピーして展開するだけです。
ローカルマシンまたはインターネットに接続されているマシンで、
npm install npm-bundle -g
npm install forever -g
では、cd /usr/local/lib/node_modules/forever
に移動して、
npm-bundle
.tgz
ファイルが作成されます。 scp/ftp
that .tgz
ファイルをオフラインサーバーに保存して、
npm install forever -g
参照: このブログ