Как мне обновить devDependencies в NPM?


155

npm updateкажется, просто обновить пакеты dependencies, но как насчет devDependencies.

Прямо сейчас вы можете установить devDependencies, запустив npm install ., но это не работает дляnpm update .

Любые идеи?


1
Я просто столкнулся с тем же. Я удивлен этой асимметрией между npm installи npm update. Я обошел его, удалив свой node_modulesкаталог и npm installснова запустив , но, похоже, должен быть лучший способ.
— Джо Уайт

7
Я открыл отчет об ошибке для этого поведения. Посмотрим что получится.
— Джо Уайт

Это может быть потому, что разработчики NPM думали, что люди будут использовать npm linkдля создания сред разработки.
— Джулиан Найт

Ответы:


156

Чтобы обновить package.json в дополнение к локальным модулям, запустите

npm update --save-dev

В качестве альтернативы, та же команда, чтобы сэкономить время

npm update -D

Вы можете просмотреть полную информацию об обновлении или любую команду по этому вопросу через

npm help <cmd>

20
npm update -Dу меня не сработало, ничего не обновило.
— AmazingDreams

28
Почему это помечается как правильный ответ, когда вопрос не в том, как сохранить обновления, package.jsonа в том, как сделать, npm updateчтобы обновить devDependencies?
— Алехандро Гарсия Иглесиас


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опция только для devDependencies
— Майкл Томпсон

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

Я столкнулся с той же проблемой, что и OP, и не нашел решения, поэтому я решил написать плагин Grunt, который будет автоматически обновлять мои devDependencies ..

Это на Github, я хотел бы получить некоторую информацию и сотрудничество, чтобы сделать его лучшим инструментом, который NPM не предоставил.

По сути, он автоматически обновит ваши устаревшие зависимости разработки с помощью простой задачи Grunt.

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


2

Что мне помогло, так это установление индивидуальных зависимостей dev

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

1

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

Это была известная ошибка npm updateкоманды, которая была исправлена ​​в ветке разработки npm, смотрите здесь: https://github.com/isaacs/npm/pull/3863

Скоро он должен появиться на последней стабильной версии npm.


1
В случае npm> v5 вам также необходимо удалить, package-lock.jsonчтобы это работало, иначе он просто установит версии, указанные в этом файле блокировки.
— Карфау

Кроме того, это не будет обновлять package.jsonдля вас. Вот тема, отслеживающая проблему .
— Дан Даскалеску

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.