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 в каталоге приложения, автоматически будут установлены модули в списке зависимостей.