NPM установить глобально пакет в автономном режиме с tarball
Согласно документам npm, это должно работать;
npm install ./package.tgz
Поэтому я пробую это глобально для tar2-файла pm2, который я скачал со страницы репозиториев github pm2;
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 (и любой другой) в автономном режиме?
1 ответ
Я узнал, что мне нужно позаботиться и о зависимостях пакета. Я получил решение в этом ответе на подобный вопрос;
Что ж... после дня, когда я пытался заставить его работать с указанными выше ссылками (npmbox или offline-npm), придумал что-то гораздо более простое. Благодаря npmbox я должен сказать. Идея состоит в том, чтобы сохранить кэш из экземпляра, который имеет онлайн-доступ, а затем использовать его в автономном.
В машине с интернетом:
1 - очистить кэш npm: очистить кэш npm
2 - установить пакет, скажем, его xyz: npm install -g package.xyz
3 - скопировать кеш в папку... давайте назовем его как угодно (я предполагаю, что npm кеш находится в корневой папке, не совсем уверен в этом): cp -R /.npm/* / cache- what -folder
В машине без интернета:
4 - перенесите эту папку cache-what-folder в экземпляр без интернета и после этого очистите кеш и установите его (я не буду указывать, как скопировать папку:)
очистка кеша npm
npm install --global --cache / cache- what -folder --optional --cache-min 99999999999 --shrinkwrap false package.xyz
Готово
Ссылка для ответа: https://stackoverflow.com/a/43793301/169534