правило зависимости версии package.json ^ не работает должным образом с командой обновления npm

#node.js #versioning #npm-update

#node.js #управление версиями #npm-обновление

Вопрос:

Я пытаюсь выполнить простой тест обновления npm, вот мой package.json

 {
  "name": "nodetest3",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" amp;amp; exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "chalk": "^0.1.0"
  }
}
  

Я вижу меловые версии

 npm view chalk versions
[
  '0.1.0',        '0.1.1',        '0.2.0',
  '0.2.1',        '0.3.0',        '0.4.0',
  '0.5.0',        '0.5.1',        '1.0.0',
  '1.1.0',        '1.1.1',        '1.1.2',
  '1.1.3',        '2.0.0',        '2.0.1',
  '2.1.0',        '2.2.0',        '2.2.2',
  '2.3.0',        '2.3.1',        '2.3.2',
  '2.4.0',        '2.4.1',        '2.4.2',
  '3.0.0-beta.1', '3.0.0-beta.2', '3.0.0',
  '4.0.0',        '4.1.0'
]
  

На данный момент, когда я запускаю

 npm update
  

Я должен получить версию пакета chalk 0.5.1, потому что я использовал ^ в зависимостях, по крайней мере, это соответствует руководству (если я использую ~ обновления до последнего патча, если я использую ^ обновления до последней младшей версии), но я получаю версию 0.1.1, которая неверна.
Чего я не понимаю, так это когда я меняю зависимость на «^ 2.0.0» или «^ 1.0.0» и запускаю

 npm update chalk
  

или

 npm update
  

chalk обновлен до правильной версии 2.4.2 или 1.1.3.
Есть ли способ обновить все ваши пакеты одновременно с обновлением npm до правильной версии, установленной в зависимостях, или это просто ошибка или, может быть, что-то связанное конкретно с chalk?

Комментарии:

1. Версии до 1.0 обрабатываются по-разному, см., Например semver.npmjs.com .

2. Хорошо, я вижу большое спасибо!