Как мне обновить 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.