Что означает -save-dev в npm install grunt --save-dev

Я только начал использовать Grunt.js. Его довольно сложно настроить, и я собираюсь создать файл package.json.

Следуя этому учебнику, он говорит, что есть 3 способа создания файла package.json.

Во-первых, нужно сделать npm install grunt --save-dev

Но что означает --save-dev? Я пробовал смотреть, но это заканчивается напрасно.

Ответ 1

--save-dev: пакет появится в ваших devDependencies.

Согласно npm установите документы.

Если кто-то планирует загрузить и использовать ваш модуль в своей программе, то он, вероятно, не хочет или не нуждается в загрузке и создании используемой вами среды внешнего тестирования или документации.

Другими словами, когда вы запускаете npm install, ваш проект devDependencies будет установлен, но devDependencies для любых пакетов, от которых зависит ваше приложение, не будет установлен; кроме того, другие приложения, имеющие ваше приложение в качестве зависимости, не должны устанавливать ваши devDependencies. Такие модули нужны только при разработке приложения (например, grunt, mocha и т.д.).

В соответствии с package.json документами

Изменение: Попытаться визуализировать, что делает npm install:

  • yourproject
    • зависимость установлена
      • зависимость установлена
        • зависимость установлена
        • devDependency НЕ установлен
      • devDependency НЕ установлен
    • DevDependency установлен
      • зависимость установлена
      • devDependency НЕ установлен

Ответ 2

Существуют (по крайней мере) два типа зависимостей пакетов, которые вы можете указать в файлах package.json:

  • Те пакеты, которые необходимы для использования вашего модуля, перечислены в разделе "Свойства зависимостей". Используя npm, вы можете добавить эти зависимости в файл package.json следующим образом:

    npm install --save packageName
    
  • Те пакеты, которые необходимы для разработки вашего модуля, перечислены в разделе "devDependencies". Эти пакеты не нужны другим, чтобы использовать модуль, но если они хотят помочь в разработке модуля, эти пакеты понадобятся. Используя npm, вы можете добавить эти devDependencies в ваш файл package.json следующим образом:

    npm install --save-dev packageName
    

Ответ 3

Чтобы добавить ответ Андреаса, вы можете установить только зависимости, используя:

npm install --production

Ответ 4

Документацию из npm для npm install <package-name> --save и npm install <package-name> --save-dev можно найти здесь:

https://docs.npmjs.com/getting-started/using-a-package.json#the-save-and-save-dev-install-flags

Файл package.json объявляет метаданные о модуле, который вы разрабатываете. Обе вышеупомянутые команды изменяют этот package.json файл. --save объявит установленный пакет (в данном случае grunt) как зависимость для вашего модуля; --save-dev объявит его как зависимость для разработки вашего модуля.

Спросите себя: будет ли установлен установленный пакет для использования моего модуля или он будет нужен только для его разработки?

Ответ 5

Когда вы используете параметр "--save", ваша зависимость войдет внутрь # 1 в package.json. Когда вы используете параметр "--save-dev", ваша зависимость войдет внутрь # 2 в package.json.

1) "зависимости": эти пакеты необходимы вашему приложению в процессе производства.

2) "devDependencies": эти пакеты необходимы только для разработки и тестирования

Ответ 6

Для меня первый ответ кажется немного запутанным, поэтому, чтобы сделать его кратким и понятным:

npm install <package_name> по умолчанию сохраняет все указанные пакеты в зависимости. Кроме того, вы можете контролировать, где и как они сохраняются с помощью некоторых дополнительных флагов:

npm install <package_name> --no-save Предотвращает сохранение в зависимости.

npm install <package_name> ---save-dev обновляет devDependencies в вашем пакете. Они используются только для локального тестирования и разработки.

Вы можете прочитать больше на в dcu