Як оновити devDependitions в NPM?


155

npm updateЗдається, просто оновити пакети dependencies, але що робити devDependencies.

Зараз ви можете встановити devDependenciesзапуск npm install ., але це не працюєnpm update .

Будь-які ідеї?


1
Я просто наткнувся на те саме. Я здивований цій асиметрії між npm installта npm update. Я обійшов його, видаливши node_modulesкаталог і знову запустивши npm install, але, схоже, здається, що там має бути кращий спосіб.
Джо Вайт

7
Я відкрив звіт про помилку щодо такої поведінки. Ми побачимо, що станеться.
Джо Вайт

Це може бути тому, що розробники NPM думали, що люди будуть використовувати npm linkдля створення середовищ розробників.
Джуліан Найт

Відповіді:


157

Щоб оновити package.json на додаток до локальних модулів, запустіть

npm update --save-dev

Як варіант, та сама команда для економії часу

npm update -D

Ви можете переглянути всю інформацію про оновлення або будь-яку команду з цього питання

npm help <cmd>

20
npm update -Dне працював для мене, він нічого не оновлював.
AmazingDreams

27
Чому це позначено як правильну відповідь, коли питання не в тому, як зберегти оновлення, package.jsonа в тому, як зробити npm updateоновлення devDependitions?
Алехандро Гарсія Іглесіас


1
npm update --save-devпрацює для мене просто чудово. Використання вузла v12.11.0та npmv6.11.3
maximedupre

55

Встановіть npm-check-updates ( https://www.npmjs.org/package/npm-check-updates ), потім перейдіть у папку проекту та запустіть:

npm-check-updates

А також оновити та зберегти зміни у файлі package.json:

npm-check-updates -u

ncuбуло б краще, ніж npm-check-updatesекономити набравши текст.
Едрік

@DimitriKopriwa є -dваріант лише для devDependitions
Майкл Томпсон,

ncu --dep dev -u; npm install
Kiruahxh


4

Якщо ви використовуєте застарілу версію npm, це може бути проблемою. Отже, перш ніж виконувати будь-які інші команди:

sudo npm install npm -g

або (якщо вище не працює):

sudo npm update npm -g

Потім перезапустіть консоль (щоб зміни набрали чинності). Тепер ви можете перевірити своє нове npm --versionта чи оновити його:

npm update

або (якщо вам зручніше):

npm update --save-dev

На жаль, це не працює в npm 5. Ось нитка, яка відстежує проблему .
Дан Даскалеску

2

Один (повільний) спосіб зробити примусове оновлення - це видалити каталог node_modules, а потім зробити npm installще раз.

Це була відома помилка npm updateкоманди, яку було виправлено у галузі розробки npm, дивіться тут: https://github.com/isaacs/npm/pull/3863

Він повинен приземлитися на останню стабільну версію npm досить скоро.


1
У випадку npm> v5 вам також потрібно буде видалити, package-lock.jsonщоб зробити цю роботу, інакше вона просто встановить версії, перелічені в цьому файлі блокування.
karfau

Крім того, це не буде оновлено package.jsonдля вас. Ось нитка для відстеження проблеми .
Дан Даскалеску

2

Я зіткнувся з тією ж проблемою, що і в ОП, і не знайшов рішення, тому вирішив написати плагін Grunt, який автоматично оновить мої devDependitions ..

Це на Github, я хотів би отримати деякий внесок та співпрацю, щоб зробити його найкращим інструментом, який NPM не надав.

В основному це автоматично оновить застарілі залежності від розробки за допомогою простого завдання Grunt.

https://github.com/pgilad/grunt-dev-update


2

Що для мене працювало - це встановити окремі залежності від розробника

npm install react-test-renderer@15.6.1 --save --only=dev

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