Node.js

npm 使用 tarball 全域安裝一個包

  • February 4, 2019

根據npm docs,這應該可行;

npm install ./package.tgz

因此,我在全球範圍內嘗試從pm2 github repo 發布頁面下載的 pm2 tarfile ;

npm install -g ./pm2-3.2.2.tar.gz

但我明白了;

npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://registry.npmjs.org/@pm2%2fagent failed, reason: getaddrinfo ENOTFOUND nb nb:443
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-01-29T08_16_17_112Z-debug.log
npm version: 5.6.0
node version: 9.4.0

它是一個錯誤嗎?

有沒有其他方法可以離線安裝 pm2(和任何其他)包?

我發現我還需要處理包的依賴關係。我在類似問題的這個答案中得到了解決方案;

好吧……經過一天嘗試使其與上述參考(npmbox 或離線-npm)一起工作後,想出了一些更簡單的方法。感謝 npmbox,我不得不說。這個想法是從具有線上訪問權限的實例中保留記憶體,然後在離線實例中使用它。

在有網際網路的機器上:

1 - 清除 npm 記憶體:npm 記憶體清除

2 - 安裝包,假設它的 xyz: npm install -g package.xyz

3 - 將記憶體複製到一個文件夾中……讓我們隨便稱呼它(我假設npm記憶體在根文件夾中,對此不確定): cp -R /.npm/* /cache-whatever-folder

在沒有網際網路的機器上:

4 - 將此記憶體文件夾帶到沒有網際網路的實例,然後清理記憶體並使用它安裝(我不會說明如何復製文件夾:)

npm 記憶體清除

npm install –global –cache /cache-whatever-folder –optional –cache-min 99999999999 –shrinkwrap false package.xyz

完畢

答案連結:https ://stackoverflow.com/a/43793301/169534

引用自:https://serverfault.com/questions/951315