Как установить npm-g на автономном сервере

мне нужно установить "глобальные" приложения npm на автономном сервере.

легко установить нормальное применение:

npm install

а затем упаковать полученные файлы. Либо вручную, либо с помощью npm pack.

однако, как я могу установить глобальное приложение (у которого есть какой-то скрипт установки), например навсегда без интернета?

npm install -g forever

8 ответов


попробовать npmbox, это новое имя npmzip, которое позволит вам установить автономные пакеты npm одним файлом


вы можете установить материал из файла tarball, проверьте документация npm. Вы можете найти URL-адрес навсегда tarball с npm view forever dist.tarball и скачать. Попробуйте что-то вроде этого:

curl -so forever.tar.gz `npm view forever dist.tarball 2> /dev/null`
npm install ./forever.tar.gz -g

но вам, возможно, придется сделать это и для всех зависимостей. Возможно, есть лучший способ, но это то, что я нашел в своих поисках.


Я создал offline-npm для получения всех зависимостей, установленных в чистом виде. Для модулей без использования node-gyp все должно работать так, как описано.

Если вы желаете node-gyp (который обычно устанавливается онлайн) можно скопировать ~/.узел-gyp к этой автономной машине.


попробовать npmzip

npm install -g npmzip
npmzip <package>

вы получите tarball в текущем каталоге Это может быть перемещено на целевую машину и:

npmunzip <tarball>

хорошо.... после дня, пытаясь заставить его работать с вышеуказанными ссылками (npmbox или offline-npm), придумали что-то намного проще. Благодаря npmbox я должен сказать. Идея сохранить кэш от экземпляра, который имеет онлайн-доступ, а затем использовать его в автономном режиме.

в машине с интернетом:

1-Очистить кэш npm:npm cache clear

2-установить пакет, скажем, его x.y.z:npm install -g **package.x.y.z**

3-копирование кэша в a папка... назовем это как угодно (я предполагаю, что кэш 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**

сделал


УСТАНОВИТЬ PM2 В АВТОНОМНОМ РЕЖИМЕ: -

протестировано на узле-v6.10.3 и НПМ-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

список зависимостей в bundledDependencies в свой пакет.json, а затем run npm pack чтобы создать tarball. Передай это другой машине, и либо ... --2-->, или просто взломать его вручную.

https://github.com/npm/npm/issues/1349


используя пряжа:

  1. на интернет-машине (настройка локального расположения кэша):

    yarn config set yarn-offline-mirror ~/yarn-offline-mirror/
    
  2. на автономном компьютере (настройка локального расположения кэша):

    yarn config set yarn-offline-mirror ~/yarn-offline-mirror/
    
  3. на автономном компьютере узнайте, где находится глобальное расположение установки:

    yarn global bin
    

    (или установите его с yarn config set prefix <file_path>)

  4. на автономном компьютере добавьте его в свой путь. Например:

    echo 'export PATH=$PATH:'"$(yarn global bin)" >> ~/.bashrc  
    source ~/.bashrc # reload
    
  5. на интернет-машине, скачать С:

    mkdir new-cli-forever/
    cd new-cli-forever/
    yarn add forever
    

    скопировать new-cli-forever/yarn.lock и ~/yarn-offline-mirror/ на автономной машине. (rm -rf new-cli-forever/ теперь "ОК".)

  6. на автономном компьютере установите 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