У меня есть сценарий, который автоматически устанавливает некоторые пакеты npm (в частности, карма, которую я хотел бы установить с помощью --global
) на инстансе EC2 при запуске. Проблема в том, что npm иногда случайно выходит из строя, предположительно из-за сбоев в сети, хотя я не совсем уверен, что происходит.
Чтобы исключить сеть, я бы хотел загрузить соответствующие файлы для npm и попросить его установить карму на основе файлов, когда я загружаю их с S3.
Но как мне это сделать? Как мне сказать npm не брать файлы из центрального репозитория, а брать их откуда-нибудь еще?
Вы должны сначала установить npmbox
модуль глобально, этот модуль создает автономный пакет со всеми зависимостями данного модуля. Тогда вы могли бы использовать npmunbox
для установки этого пакета на автономный компьютер.
Чтобы установить npmbox: npm install -g npmbox
Чтобы создать автономный пакет модуля: npmbox -v localtunnel
, Это сгенерирует localtunnel.npmbox
файл в текущий каталог. Скопируйте это на свой офлайн-компьютер.
Чтобы установить офлайн-пакет: npmunbox localtunnel.npmbox
Для получения дополнительной информации: https://github.com/arei/npmbox
Я написал простой и прозрачный инструмент для npm install
использование автономного кеша npm
Посмотри пожалуйста https://github.com/harish2704/npm-offline-registry
УСТАНОВИТЬ PM2 OFFLINE: -
Протестировано на Node-v6.10.3 и Npm-3.10.10 на RHEL-7
Подойдите к машине с подключением к Интернету: -
#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