Як оновити 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.