установка npm и обновление-в чем разница?

в чем практическая разница между npm install и npm update? Когда я должен использовать что?

4 ответов


разницу между установка npm и обновление npm обработка версий пакетов, указанных в пакета.в JSON:

{
  "name":          "my-project",
  "version":       "1.0",                             // install   update
  "dependencies":  {                                  // ------------------
    "already-installed-versionless-module":  "*",     // ignores   "1.0" -> "1.1"
    "already-installed-semver-module":       "^1.4.3" // ignores   "1.4.3" -> "1.5.2"
    "already-installed-versioned-module":    "3.4.1"  // ignores   ignores
    "not-yet-installed-versionless-module":  "*",     // installs  installs
    "not-yet-installed-semver-module":       "^4.2.1" // installs  installs
    "not-yet-installed-versioned-module":    "2.7.8"  // installs  installs
  }
}

резюме: единственная большая разница в том, что уже установленный модуль с нечетким управлением версиями ...

  • получает игнорируются npm install
  • обновляется по npm update

дополнительно: install и update по умолчанию обрабатывать devDependencies по-разному

  • npm install будет установить/обновить devDependencies если --production флаг
  • npm update будет игнорировать devDependencies если --dev флаг

зачем использовать npm install на всех?

, потому что npm install делает больше, когда вы смотрите кроме обработки зависимостей в package.json. Как вы можете видеть в установка npm вы можете ...

  • вручную установить node-modules
  • как глобальные (что помещает их в оболочку PATH) через npm install -g <name>
  • установите определенные версии, описанные тегами git
  • установить с Git url
  • принудительная переустановка с помощью --force

установка npm устанавливает все модули, перечисленные в package.json файл и их зависимости.

обновление npm обновляет все пакеты в


в большинстве случаев это установит последнюю версию модуля, опубликованную на npm.

npm install express --save

или лучше обновить модуль до последней версии использовать:

npm install express@latest --save --force

--save: пакет появится в вашей зависимости.

Подробнее: npm-установить


многие различия уже упоминались. Вот еще один:

под управлением npm install в верхней части исходного каталога будут выполняться различные скрипты:prepublish, preinstall, install, postinstall. В зависимости от того, что делают эти скрипты, a npm install может сделать значительно больше работы, чем просто установка зависимостей.

у меня только что был прецедент, когда prepublish назвали бы make и Makefile был разработан для извлечения зависимостей, если package.json получил обновление. Зовущий npm install внутри Makefile привело бы к бесконечной рекурсии при вызове npm update работал просто отлично, устанавливая все зависимости, чтобы сборка могла продолжаться, даже если make был вызван напрямую.