Różnica między --save
i --save-dev
może nie być natychmiast zauważalna, jeśli wypróbowałeś je oba przy swoich własnych projektach. Oto kilka przykładów ...
Powiedzmy, że tworzysz aplikację, która używała pakietu moment do analizowania i wyświetlania dat. Twoja aplikacja jest programem planującym, więc naprawdę potrzebuje tego pakietu do uruchomienia, ponieważ w: nie można bez niego uruchomić . W takim przypadku skorzystasz
npm install moment --save
Spowoduje to utworzenie nowej wartości w pliku package.json
"dependencies": {
...
"moment": "^2.17.1"
}
Kiedy się rozwijasz, naprawdę pomaga korzystanie z narzędzi, takich jak zestawy testowe, i może wymagać rdzenia jaśminu i karmy . W takim przypadku skorzystasz
npm install jasmine-core --save-dev
npm install karma --save-dev
Spowoduje to również utworzenie nowej wartości w pliku package.json
"devDependencies": {
...
"jasmine-core": "^2.5.2",
"karma": "^1.4.1",
}
Nie potrzebujesz zestawu testów do uruchomienia aplikacji w jej normalnym stanie, więc jest to --save-dev
zależność od typu, nic więcej. Możesz zobaczyć, jak jeśli nie rozumiesz, co się naprawdę dzieje, trudno to sobie wyobrazić.
Zaczerpnięte bezpośrednio z NPM docs docs # zależności
Zależności
Zależności są określone w prostym obiekcie, który odwzorowuje nazwę pakietu na zakres wersji. Zakres wersji to ciąg znaków, który ma jeden lub więcej deskryptorów oddzielonych spacjami. Zależności można również zidentyfikować za pomocą tarballa lub adresu URL git.
Proszę nie umieszczać testowych wiązek lub transpilatorów w obiekcie zależności. Zobacz devDependencies poniżej.
Nawet w dokumentacji prosi o użycie --save-dev dla modułów takich jak uprzęże testowe.
Mam nadzieję, że to pomaga i jest jasne.