Я вижу инструкции по установке пакета с помощью
npm install <package_name>
или
npm install <package_name> --save
или
npm install <package_name> --save-dev
В чем разница между этими вариантами?
Я вижу инструкции по установке пакета с помощью
npm install <package_name>
или
npm install <package_name> --save
или
npm install <package_name> --save-dev
В чем разница между этими вариантами?
npm install <package_name> --save
устанавливает пакет и обновляет зависимости в вашем package.json. Так как этот вопрос был задан, в npm произошли изменения, так что --save
стал опцией по умолчанию, поэтому вам не нужно использовать --save
для обновления зависимостей.
npm install <package_name> --no_save
устанавливает пакет, но не обновляет зависимости, перечисленные в вашем package.json.
npm install <package_name> ---save-dev
обновляет devDependencies
в вашем пакете. Они используются только для локального тестирования и разработки.
Вы можете прочитать больше на https://docs.npmjs.com/getting-started/using-a-package.json.
npm install принимает 3 эксклюзивных, необязательных флага, которые сохраняют или обновляют версию пакета в вашем основном пакете. json:
-S, --save: пакет появится в ваших зависимостях.
-D, --save-dev: пакет появится в ваших devDependencies.
-O, --save-optional: Пакет появится в ваших дополнительных опциях.
При использовании любой из вышеперечисленных опций для сохранения зависимостей с вашим пакетом .json существует дополнительный необязательный флаг:
-E, --save-exact: сохраненные зависимости будут сконфигурированы с точной версией, а не с помощью оператора nver по умолчанию. Кроме того, если у вас есть npm-shrinkwrap.json, он также будет обновлен.
<scope>
является необязательным. Пакет будет загружен из реестра, связанного с указанной областью. Если реестр не связан с данной областью, предполагается, что используется реестр по умолчанию. См. Npm-scope.
Примечание. Если вы не укажете @-символ в своем имени области, npm будет интерпретировать это как репозиторий GitHub, см. ниже. Названия областей также должны сопровождаться косой чертой.
Примеры:
npm install sax --save npm установить githubname/reponame npm install @myorg/privatepackage npm install node -tap --save-dev npm установить dtrace-provider --save-optional npm install readable-stream --save --save-exact
Примечание. Если в текущем рабочем каталоге есть файл или папка с именем <name>
, тогда он попытается установить это и попытаться получить пакет по имени, если он недействителен.
(из официальных документов) https://docs.npmjs.com/cli/install
Флаг --save
больше не служит цели.
Ранее, как отмечалось в других ответах, флаг --save
обновлял зависимости в файле проекта package.json
, но npm install
теперь включает эту функцию по умолчанию.
На этом этапе, если вы хотите запретить npm install
сохранять зависимости, вы должны использовать флаг --no-save
.
Спасибо Coruscate5 за упоминание этого в комментарии.
Подробнее в документации по установке npm:
npm install сохраняет все указанные пакеты в зависимости по умолчанию. Кроме того, вы можете контролировать, где и как они сохраняются с помощью некоторых дополнительных флагов:
-P, --save -P rod: Пакет появится в ваших зависимостях. Это значение по умолчанию, если нет -D или -O.
-D, --save -D ev: Пакет появится в ваших devDependencies.
-O, --save -O ptional: Пакет будет отображаться в ваших необязательных зависимостях.
--no-save: Prevents saving to dependencies.
При использовании любого из вышеперечисленных параметров для сохранения зависимостей в ваш package.json есть два дополнительных необязательных флага:
-E, --save -E xact: Сохраненные зависимости будут настроены с точной версией, а не с использованием оператора диапазона по умолчанию для npms.
-B, --save -B undle: Сохраненные зависимости также будут добавлены в список bundleDependencies.