Я бачу інструкції з встановлення пакету з будь-яким із них
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
: Пакет з’явиться у ваших необов’язкових залежностях.
При використанні будь-якого з наведених вище параметрів для збереження залежностей у файлі package.json існує додатковий, необов’язковий прапор:
-E, --save-exact
: Збережені залежності будуть налаштовані з точною версією, а не за допомогою типового оператора напівдіапазону npm за замовчуванням. Крім того, якщо у вас є npm-shrinkwrap.json, він також буде оновлений.
<scope>
не є обов’язковим. Пакет буде завантажено з реєстру, пов'язаного із зазначеним обсягом. Якщо жоден реєстр не пов'язаний із заданою областю, передбачається реєстр за замовчуванням. Див. Npm-scope.
Примітка: якщо ви не включите @ -symbol до імені вашої області, npm буде інтерпретувати це як сховище GitHub, див. Нижче. Назви областей також повинні супроводжуватися косою рискою.
Приклади:
npm install sax --save
npm install githubname/reponame
npm install @myorg/privatepackage
npm install node-tap --save-dev
npm install dtrace-provider --save-optional
npm install readable-stream --save --save-exact
Примітка: Якщо <name>
у поточному робочому каталозі є файл або папка , він спробує встановити його та намагатиметься отримати пакет за іменем, якщо він недійсний.
(з офіційних документів) https://docs.npmjs.com/cli/install
--save
опція все ще працює, вона більше не потрібна - пакети тепер зберігаються у залежностях за замовчуванням . Логіка зараз обернена - якщо ви не хочете зберігати свій пакет, вам потрібно вказати--no-save
Чи не --save
прапор більше не має на меті.
Раніше, як зазначалося в інших відповідях, --save
прапор буде оновлювати залежності у package.json
файлі проекту , але npm install
тепер включає цю функцію за замовчуванням.
На цьому етапі, якщо ви хочете запобігти npm install
збереженню залежностей, вам доведеться використовувати --no-save
прапор.
Дякуємо Coruscate5 за те, що згадали про це у своєму коментарі .
Більше інформації в документації до npm-install :
npm install за замовчуванням зберігає будь-які зазначені пакети у залежностях. Крім того, ви можете контролювати, де і як вони зберігаються, за допомогою деяких додаткових прапорців:
-P, --save-prod: Пакет з’явиться у ваших залежностях. Це за замовчуванням, якщо немає -D або -O.
-D, --save-dev: Пакет з’явиться у ваших devDependencies.
-O, --save-optional: Пакет з’явиться у ваших необов’язкових залежностях.
--no-save: Запобігає збереженню до залежностей.
При використанні будь-якого з наведених вище параметрів для збереження залежностей у файлі package.json є два додаткові, необов’язкові прапори:
-E, --save-дакладна: Збережені залежності будуть налаштовані з точною версією, а не за допомогою типового оператора npm діапазону semver range.
-B, --save-bundle: Збережені залежності також будуть додані до вашого списку bundleDependencies.