Подтвердить что ты не робот

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

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

Легко установить обычное приложение:

npm install

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

Однако как установить глобальное приложение (имеющее какую-либо установку script), например, навсегда без Интернета?

npm install -g forever
4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

Хорошо... после дня, пытаясь заставить его работать с вышеупомянутыми ссылками (npmbox или offline-npm), придумал что-то намного проще. Спасибо 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 - возьмите эту кеш-любую папку в экземпляр без Интернета, а после этого очистите кэш и установите с ним (я не укажу, как скопировать папку:)

npm cache clear

npm install --global --cache **/cache-whatever-folder** --optional --cache-min 99999999999 --shrinkwrap false **package.x.y.z**

Готово

Ответ 4

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

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

Ответ 5

УСТАНОВИТЬ PM2 OFFLINE: -

Протестировано на Node -v6.10.3 и Npm-3.10.10 на RHEL-7

Перейти к машине с подключением к Интернету:

#npm install -g npmbox
#npmbox npmbox
#scp npmbox.npmbox [email protected]:.

Перейти к машине без подключения к Интернету:

#ssh  [email protected] 
#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 [email protected]:.

Перейти к машине без подключения к Интернету:

#npmunbox pm2.npmbox --global
#pm2 ls

Ответ 6

Попробуйте npmzip

npm install -g npmzip
npmzip <package>

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

npmunzip <tarball>

Ответ 7

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

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

Ответ 8

Используя пряжу:

  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. На интернет-машине загрузите forever зависимости:

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

    Затем скопируйте new-cli-forever/yarn.lock и ~/yarn-offline-mirror/ 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

Ответ 9

На вашей локальной машине или любой машине, которая имеет подключение к Интернету, сделайте

npm install npm-bundle -g
npm install forever -g

Теперь перейдите в cd/usr/local/lib/node_modules/forever и выполните

npm-bundle

Это создаст файл .tgz. Теперь scp/ftp этот файл .tgz на автономный сервер и выполните команду scp/ftp

npm install forever -g

Ссылка: этот блог

Ответ 10

npmbox устарел

Используйте команду npm pack (npm docs), не нужно ничего устанавливать.

Один пакет

Если вам нужен только один пакет (например, forever), вы можете запустить:

npm pack forever

эта команда извлечет его в кеш, а затем скопирует архив в текущий рабочий каталог как -.tgz

Затем из папки, в которой вы создали пакет, вы устанавливаете его:

npm install -g ./forever-x.y.z.tgz

Весь проект

Если вы хотите, чтобы весь проект был установлен в автономном режиме, включите в ваш package.json poperty с именем bundleDependencies и перечислите все зависимости, которые вам нужны в этом поле.

// 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 всего вашего проекта и зависимостей.

Вы просто должны скопировать его на автономный сервер и распаковать.