2012-04-09 2 views
89

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

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

Любые идеи?

+0

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

+0

Да, я сделал то же самое. – Matt

+7

Для этого вы открыли [отчет об ошибке] (https://github.com/isaacs/npm/issues/2369). Посмотрим, что произойдет. –

ответ

99

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

npm update --save-dev 

С другой стороны, та же команда, чтобы сэкономить время

npm update -D 

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

npm help <cmd> 
+11

'npm update -D' не сработало для меня, оно ничего не обновляло. – AmazingDreams

+11

Почему это помечено как правильный ответ, когда вопрос заключается не в том, как сохранить обновления в 'package.json', а в том, как сделать обновление npm для обновления devDependencies? –

+0

npm 5 работает правильно .. – onalbi

3

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

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

Он должен приземлиться на последней стабильной версии НПМ довольно скоро.

+0

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

2

Добавить новую зависимость в config.json файле,

затем запустить команду

npm update 

Иногда нужно запустить команду с sudo для администратора привилегированности затем использовать.

sudo npm update 
7

Эта проблема больше не акцизна с текущей версией NPM (1.3.11).

Update отлично работает с: npm update

2

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

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

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

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

36

Установка NPM-чек-обновления (https://www.npmjs.org/package/npm-check-updates), а затем перейти в папку проекта и запуск:

npm-check-updates 

И для обновления и сохранения изменений в пакете.json file:

npm-check-updates -u 
+0

Закройте полезную утилиту, спасибо за обмен. –

3

Если вы используете устаревшую версию npm, это может быть проблема. Поэтому, прежде чем какие-либо другие команды выполняют:

sudo npm install npm -g 

или (если выше не работает):

sudo npm update npm -g 

Затем перезапуск консоль (для того, чтобы изменения вступили в силу). Теперь вы можете проверить свой новый npm --version и если до даты выполнения:

npm update 

или (если вы предпочитаете):

npm update --save-dev 
0

То, что сработало для меня является установка индивидуальных зависимостей Dev как этот

npm install [email protected] --save --only=dev 
Смежные вопросы