Npm install --save, то, что использует не сохранение

Я понимаю различия между npm install something и npm install something --save (для всех, кто интересуется, первый установит зависимость только тогда, когда последний установит зависимость и добавит ее в ваш package.json).

Однако я не понимаю, почему в первую очередь существует опция --save. Другими словами, зачем вам устанавливать зависимость, не добавляя ее в файл package.json? Почему опция --save не используется по умолчанию?

Многие веб-сайты/модули npm/SaaS предлагают установить свой модуль с помощью npm install something (например, newrelic - один из них), я что-то упустил?

Изменить: Начиная с NPM 5, --save теперь включен по умолчанию.

Ответ 1

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

  • Но для большинства ваших модулей вам может потребоваться использовать --save, например. npm install express --save, в этом случае вы наверняка знаете, что собираетесь использовать экспресс для своего приложения.

  • Другой сценарий, для использования --save, был бы npm install heapdump или npm install nodemon, я бы использовал его для тестирования производительности своих приложений, но не добавлял зависимостей в package.json:)

  • Также, как @surajck сказал в комментарии ниже: когда вы делаете глобальные установки, в этом случае добавление зависимостей с помощью --save, к package.json не имеет смысла.

Ответ 2

Я только что узнал хороший трюк из курса Джонатана Миллса "Лучшие практики" на Pluralsight. От терминала:
npm config set save=true
Теперь мне больше не нужно вспоминать --save. И теперь я также использую npm config set save-exact=true
Потому что я хочу, чтобы точную версию пакета не префикс ^.

Ответ 3

По умолчанию с версией npm 5. 0+ npm install добавляет модуль в список зависимостей в файле package.json; в более ранних версиях npm вы должны явно указать опцию --save. Затем, после запуска npm install в каталоге приложения, автоматически будут установлены модули в списке зависимостей.