Разница между --save
и --save-dev
может быть не сразу заметна, если вы попробовали их обоих в своих проектах. Итак, вот несколько примеров ...
Допустим, вы создавали приложение, которое использовало пакет момента для анализа и отображения дат. Ваше приложение является планировщиком, поэтому ему действительно нужен этот пакет, как в: не может работать без него . В этом случае вы бы использовали
npm install moment --save
Это создаст новое значение в вашем package.json
"dependencies": {
...
"moment": "^2.17.1"
}
Когда вы разрабатываете, это действительно помогает использовать такие инструменты, как наборы тестов, и может потребоваться ядро жасмина и карма . В этом случае вы бы использовали
npm install jasmine-core --save-dev
npm install karma --save-dev
Это также создаст новое значение в вашем package.json
"devDependencies": {
...
"jasmine-core": "^2.5.2",
"karma": "^1.4.1",
}
Вам не нужен набор тестов для запуска приложения в его нормальном состоянии, так что это --save-dev
зависимость типа, не более того. Вы можете видеть, как, если вы не понимаете, что на самом деле происходит, это немного сложно представить.
Взят напрямую из NPM docs docs # зависимости
зависимости
Зависимости указываются в простом объекте, который сопоставляет имя пакета с диапазоном версий. Диапазон версий - это строка, содержащая один или несколько разделенных пробелами дескрипторов. Зависимости также могут быть идентифицированы с помощью tarball или git URL.
Пожалуйста, не помещайте тестовые жгуты или транспортеры в ваш объект зависимостей. Смотрите devDependencies ниже.
Даже в документах вам предлагается использовать --save-dev для таких модулей, как тестовые наборы.
Я надеюсь, что это помогает и понятно.