Использование npm как загрузить пакет в виде zip со всеми его зависимостями, включенными в пакет

То, что я пытаюсь сделать, это загружать пакеты со всеми их зависимостями, чтобы перенести их на другой компьютер, на котором нет подключения к Интернету, и установите его там.

Таким образом, сценарий будет выглядеть следующим образом:

  • Загрузите пакет (в zip/tarball/любой файл) без его установки.

  • В этот загруженный файл будут включены все его зависимости (правильные версии и зависимости от зависимостей).

  • Перенесите файл на другой компьютер.

  • Запустите npm install в местоположение файла (необязательно -g важно).

  • Пакет устанавливается с зависимостями.

  • Счастливый турист.

Я чувствую, что должна быть команда npm для загрузки и упаковки (создания) файлов таким образом.

Я пробовал искать решение для этого безрезультатно.

Это мой первый раз, когда я использую node, поэтому я боюсь, что я не правильно его изучаю, потому что отсутствие знаний о node/npm lingo.

3 ответа

Я просто использовал этот gist от Джека Гилла, чтобы сделать именно то, что вы описали, - собрать пакет со всеми его зависимостями. В основном, что делает script, перезаписывает модуль package.json, чтобы переместить все его dependencies в bundleDependencies, а затем упаковать все это. Загрузите полученный tarball на ваш сервер, затем npm install его. Работает с удовольствием.


  • Загрузите пакет на компьютер с Интернетом.

  • Убедитесь, что ваш пакет приложения имеет файл package.json в своем корне со всеми перечисленными в нем зависимостями. Вы можете сделать npm для сохранения зависимостей в package.json, выполнив npm install dependency-name --save. Флаг --save заставит npm записывать зависимость в файл приложения package.json, если он есть. Если этого не произойдет, он ничего не сделает. Вы также можете указать npm для создания файла package.json для вашего приложения, если вам нужно просто запустить npm init из каталога приложений.

  • Запустите npm install из каталога приложения. Это создаст каталог node_modules и установит все зависимости, перечисленные в приложении package.json.

  • Замените каталог теперь, когда он имеет каталог node_modules, в котором установлены все ваши зависимости. Перенесите zip-архив на другой компьютер.

  • Просто распакуйте архив в конечный пункт назначения, и все готово. Приложение теперь там, где оно должно быть, и зависимости уже установлены.

  • Теперь просто запустите приложение с node app.js, заменив "app.js" на любое имя основного файла точки входа приложения.


Просто запустите npm install в каталоге пакета и сохраните его. Предполагая, что нет требований, отличных от npm, которые вам нужны для мяса, и обе машины работают с той же версией node, больше ничего не нужно делать. Все загруженные зависимости будут установлены внутри ./node_modules. Но в целом неплохо было бы архивировать весь пакет, так как разработчик мог бы реализовать некоторые дополнительные процедуры настройки.

licensed under cc by-sa 3.0 with attribution.