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

155

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

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

Любые идеи?

Matt
источник
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>
deckerdev
источник
20
npm update -Dу меня не сработало, ничего не обновило.
AmazingDreams
28
Почему это помечается как правильный ответ, когда вопрос не в том, как сохранить обновления, package.jsonа в том, как сделать, npm updateчтобы обновить devDependencies?
Алехандро Гарсия Иглесиас
@onalbi: это не так. Вот тема, отслеживающая проблему .
Дан Даскалеску
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
jmarceli
источник
К сожалению, это не работает в 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
Varsha
источник
1

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

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

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

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

Эти шаги работали для меня:

  1. npm install -g npm-check-updates
  2. ncu -u
  3. npm update
  4. npm install
Альферд Нобель
источник