Який варіант - зберегти для установки npm?


2035

Я побачив підручник, де була команда:

npm install --save

Що означає --saveваріант?

Не вдалося знайти відповідь у Google.


32
@ Tom- --save: Package will appear in your dependencies.
WiredPrairie

7
Ви можете використовувати ярлики -S і -D там -S є - зберегти і -D є '- зберегти-розробити. --save (або простий -S): Пакет з’явиться у ваших залежностях. --save-dev (або простий -D): Пакет з’явиться у ваших devDependents.
Гіл Епштейн

5
@WiredPrairie дякую, що я намагався npm install (--help | -h | -help ..)і нічого.
juliangonzalez

2
thx @Dmitri, у мене був той самий випуск. заходьте NPM, додайте це на сторінку MAN для свого інструменту
Erdinc Ay

67
Я не розумію обґрунтування рішення про видалення навіть просто згадки про цю опцію зі сторінки "Документи" та "Довідка", не також знецінюючи її, щонайменше, з попередженням у самому інструменті. Тим часом, новачки піддаються впливу за допомогою мільйонів навчальних посібників. Потім вони намагаються з'ясувати, що це робить, і доведеться витрачати 20 хвилин на перегляд документів, щоб врешті-решт прочитати npm історію на stackoverflow. Як не дивно запобігання такого роду масових втрат часу (якщо популярність питання є будь-якими ознаками) є однією з цілей документації.
Майкл Екока

Відповіді:


2476

Оновлення npm 5:

З npm 5.0.0 встановлені модулі за замовчуванням додаються як залежність, тому --saveпараметр більше не потрібен. Інші варіанти збереження все ще існують і перераховані в документації на npm install.

Оригінальна відповідь:

До версії 5 NPM просто встановив пакет node_modulesза замовчуванням. Коли ви намагалися встановити залежності для свого додатка / модуля, вам слід спочатку встановити їх, а потім додати їх (разом із відповідним номером версії) до dependenciesрозділу свого package.json.

--saveВаріант доручив НПМ включити пакет внутрішню частину dependenciesсекції вашого package.jsonавтоматично, тим самим заощаджуючи додатковий крок.

Крім того, існують додаткові опції --save-devі --save-optionalякі економлять пакет під devDependenciesі optionalDependencies, відповідно. Це корисно при встановленні пакетів, що стосуються лише розвитку, наприклад, gruntабо вашої бібліотеки для тестування.


140
Серйозно, чи це десь задокументовано? Я не зміг його знайти в Google або в npmдовідці.
Крістіан Терн

111
Було б добре, якби документація на це з’явилася, коли npm install --helpвона використовувалася.
Марк Стосберг

11
@jimsmith: Станом на npm 5.0 це за замовчуванням.
voithos

3
Чи "npm update" на NPM 5 модифікує package.json за замовчуванням?
Ігор Окороков

6
@voithos Для мене NPM 5 оновлює версії пакета в package.json. Щоб уникнути цього, мені потрібно запустити 'npm update --no-save'
Ігор Окороков

219

Щоб додати пакет в залежності:

npm install my_dep --save

або

npm install my_dep -S

або

npm i my_dep -S

Щоб додати пакунок у devDependitions

npm install my_test_framework --save-dev

або

npm install my_test_framework -D

або

npm i my_test_framework -D

package.json введіть тут опис зображення


30
будьте обережні, використовуючи версії швидкого доступу, такі -S -Dяк вони повинні бути великими. Я завжди роблю цю помилку, і npm не скаржиться і не додає її в package.json
Мюррей Віннес

7
Він не скаржиться, оскільки -s(малий регістр) призначений для --silentпараметра, а -dтакож для інформації про loglevel, яка є дійсними ярликами.
танві

131

Він нічого не зробить, якщо у вас немає package.jsonфайлу. Почніть з запуску, npm initщоб створити його. Потім дзвонить npm install --saveабо npm install --save-devабо npm install --save-optionalбуде оновлювати package.jsonв список ваших залежностей.


37
Щойно з’ясували, що це працює заднім числом (здається). Ви можете запустити свій npm install --save-devперший, тоді npm init і ваш package.json буде заповнений.
Якоб Ван

20

згідно з док. NPM

введіть тут опис зображення

Отже, здається, що, запустивши npm install package_name, залежність від пакета повинна бути автоматично додана до package.json правда?


1
Я думаю, що - не економте - це використовувати, коли вам потрібні такі функції, як npm <5
Abhiroj Panwar

Я бачу, npm config ls -lпоказує, що за замовчуванням параметри save-xxx всі помилкові, лише збереження є істинним.
ROROROOROROR

Схоже, що npm не призведе до жодної помилки, якщо поставити жоден параметр, наприклад --save-xxxxxx. Він просто ігнорує його і поведінка за замовчуванням --save-prod буде впливати. Можливо --save походить із старої версії npm.
Леон

13

Ви також можете використовувати -S, -Dабо -Pякі є еквівалентом збереження пакета на залежність додатки, в залежності Dev або прод залежності. Дивіться більше ярликів NPM нижче:

-v: --version
-h, -?, --help, -H: --usage
-s, --silent: --loglevel silent
-q, --quiet: --loglevel warn
-d: --loglevel info
-dd, --verbose: --loglevel verbose
-ddd: --loglevel silly
-g: --global
-C: --prefix
-l: --long
-m: --message
-p, --porcelain: --parseable
-reg: --registry
-f: --force
-desc: --description
-S: --save
-P: --save-prod
-D: --save-dev
-O: --save-optional
-B: --save-bundle
-E: --save-exact
-y: --yes
-n: --yes false
ll and la commands: ls --long

Цей список ярликів можна отримати, виконавши таку команду:

$ npm help 7 config

7

Станом на npm 5, вигідніше використовувати --save-prod(або -P), ніж --saveробити те саме, що зазначено в npm install . Поки що, --saveяк і раніше, працює.


Це потрібно піднятися до вершини, щоб врятувати нас усіх у читанні варіантів читання, суперечливості та викрадення теми. Тому потрібно заохочувати стислі відповіді з дійсними URL-адресами, щоб ми могли уникнути CRUD та продовжувати свою роботу. (У Quora є чітка "Чи відповідь ця відповідна" і т. Д., І я навіть раніше пропонував ТА зробити це) \ n Здається, що в офіційному документі вузла немає згадок про старіші (неіснуючі) параметри і більшість посилань на вузли здаються попередніми -5,0, відправляючи наші голови на віджимання.
killjoy

6

Станом на npm 5, npm тепер буде збережено за замовчуванням. У випадку, якщо ви хочете, щоб npm працював аналогічно старому способу (без автоматичного збереження), як він працював у попередніх версіях, ви можете оновити параметр config, щоб увімкнути автоматичне збереження, як показано нижче.

npm config set save false

Щоб отримати поточний параметр, ви можете виконати таку команду:

npm config get save

Джерело: https://blog.pusher.com/what-you-need-know-npm-5/


6

npm install package_x --save

Даний пакет (package_x) буде збережений у package.json всередині залежностей. якщо ви додасте

npm install <<package_x>> --save-dev

тоді вона буде збережена всередині devDependitions .


12
Що вашої відповіді сприяє тому, що інші відповіді вже не охоплені?
Педро А

@Pedro A - Я підозрюю, що хлопець переписує те, що тільки що прочитав; то його друзі дають йому голоси.
IAM_AL_X

3

Найпростіший (і дивовижніший) спосіб додати залежності до пакету package.json - це зробити з командного рядка, позначивши команду npm install або --save або --save-dev, залежно від того, як ви хочете використовувати цю залежність.


3

npm install --saveабо npm install --save-devчому ми обираємо 1 варіант між цими двома під час встановлення пакету в нашому проекті.

З вищезазначених відповідей все зрозуміло, що npm install --saveдодасть запис у dependencyполе у pacakage.jsonфайлі та інший в dev-dependency.

Тому виникає питання, чому нам потрібен запис нашого інсталяційного модуля у файлі pacakge.json, оскільки кожен раз, коли ми входимо в код gitабо надаємо свій код якомусь, ми завжди надаємо його або перевіряємо без того, node-modulesщо він має великі розміри і також доступний на загальне місце, щоб уникнути цього ми робимо це.

то тоді як інша людина отримає всі модулі, які спеціально або потрібні для цього проекту, так відповіді - це from the package.jsonфайл, у якому є запис усіх необхідних пакетів для запуску або розвитку проекту.

тому після отримання команди коду we simply need to run the npm installвін прочитає файл package.json та встановить необхідні необхідні пакети.


2

npm i (назва пакету) - зберегти

Просто, використовуючи вищезгадану команду, нам не потрібно буде писати ім'я пакета у файл package.json, він автоматично додасть своє ім'я та залежність від версії, яка вам знадобиться в той час, коли ви йдете на виробництво чи налаштування в інший час.

npm допоможе встановити

Вище наведена команда допоможе дізнатися більше варіантів та виправити def.shown на рис введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.