Grunt.js: co oznacza-save-dev w npm install grunt --save-dev

Właśnie zacząłem używać Grunt.js . Jest to dość trudne do skonfigurowania i jestem w momencie tworzenia pliku package.json.

Po tym tutorialu , jest napisane, że istnieją 3 sposoby na utworzenie pliku package.json.

Pierwszy to zrobić npm install grunt --save-dev

Ale co oznacza --save-dev? próbowałem szukać, ale skończyło się na próżno.

Author: dayuloli, 2013-10-07

5 answers

--save-dev: Pakiet pojawi się w twoim devDependencies.

Zgodnie z npm install docs .

Jeśli ktoś planuje pobrać i używać twojego modułu w swoim programie, to prawdopodobnie nie chce lub nie musi pobierać i budować zewnętrznego frameworka testowego lub dokumentacji, którego używasz.

Innymi słowy, po uruchomieniu npm install zostaną zainstalowane devDependencies twojego projektu, ale devDependencies dla wszystkich pakietów, które aplikacja zależy od nie zostanie zainstalowana; ponadto inne aplikacje posiadające aplikację jako zależność nie muszą instalować devDependencies. Takie moduły powinny być potrzebne tylko przy tworzeniu aplikacji(np. grunt, mocha itp.).

Zgodnie z pakietem.JSON docs .

Edit: próba wizualizacji tego, conpm install robi:

  • yourproject
    • instalacja zależności
      • dependecy installed
        • dependecy installed
        • devDependency nie jest zainstalowany
      • devDependency nie jest zainstalowany
    • devDependency zainstalowany
      • dependecy installed
      • devDependency nie jest zainstalowany
 295
Author: Andreas Hultgren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-15 12:41:33

Istnieją (co najmniej) dwa typy zależności pakietu, które możesz wskazać w pakiecie.pliki json:

  1. Pakiety, które są wymagane do użycia twojego modułu są wymienione we właściwości "dependencies". Używając npm możesz dodać te zależności do swojego pakietu.plik json w ten sposób:

    npm install --save packageName
    
  2. Pakiety wymagane do pomocy w rozwijaniu twojego modułu są wymienione we właściwości "devDependencies". Pakiety te nie są konieczne, aby inni mogli korzystać z modułu, ale jeśli chcą pomóc w jego rozwoju, pakiety te będą potrzebne. Używając npm możesz dodać te devDependencies do swojego pakietu.plik json w ten sposób:

    npm install --save-dev packageName
    
 87
Author: Lonnie Best,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-28 18:18:32

Aby dodać do odpowiedzi Andreasa, ponieważ nie mogę jeszcze komentować, możesz zainstalować tylko zależności za pomocą: npm install --production

 30
Author: machinehead115,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-24 19:56:27

Dokumentacja z npm dla npm install <package-name> --save i npm install <package-name> --save-dev można znaleźć tutaj:

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

Plik package.json deklaruje metadane dotyczące rozwijanego modułu. Oba powyższe polecenia modyfikują ten plik package.json. --save zadeklaruje zainstalowany pakiet (w tym przypadku grunt) jako zależność dla Twojego modułu; --save-dev zadeklaruje go jako zależność dla rozwoju twojego modułu moduł.

Zadaj sobie pytanie: czy zainstalowany pakiet będzie wymagany do korzystania z mojego modułu, czy tylko do jego rozwijania?

 6
Author: Niko Kovacevic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-24 21:19:14

Gdy użyjesz parametru "--save", twoja zależność wejdzie do pakietu #1 in.json. Gdy użyjesz parametru "--save-dev", twoja zależność wejdzie do pakietu #2 in.json.

1) "zależności" : te pakiety są wymagane przez Twoją aplikację podczas produkcji.

2)" devDependencies": te pakiety są potrzebne tylko do rozwoju i testowania

 2
Author: Sathesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-05 00:23:55