npm обновляет пакет, для которого я установил версию? - PullRequest
0 голосов
/ 26 сентября 2019

Новый для npm, мой package.json был такой:

{
  "version": "1.0.0",
  "name": "asp.net",
  "private": true,
  "devDependencies": {
    "babel-core": "6.26.0",
    "babel-preset-es2015": "6.24.1",
    "karma": "^4.1.0"
    }
}

Так что, как вы видите, версия babel-core установлена ​​на 6.26.0, так как я не хочу ее обновлять.Затем я побежал npm update, package.json стал:

{
  "version": "1.0.0",
  "name": "asp.net",
  "private": true,
  "devDependencies": {
    "babel-core": "6.26.0",
    "babel-preset-es2015": "6.24.1",
    "karma": "^4.3.0"
    }
}

Что хорошо, карма улучшена, но не вавилонская, имеет смысл.Затем я установил ncu и запустил ncu -u, package.json стал:

{
  "version": "1.0.0",
  "name": "asp.net",
  "private": true,
  "devDependencies": {
    "babel-core": "6.26.3",
    "babel-preset-es2015": "6.24.1",
    "karma": "^4.1.0"
    }
}

3 вопроса:

  1. после выполнения npm update, babel-core обновлен до 6.26.3 без изменения package.json, или babel-core вообще не обновляется?
  2. Я сказал npm не обновлять babel, почему ncu -u обновляет babel для меня?
  3. зачем нам ncu, чтобы обновить package.json до последней версии?Разве они не должны быть обновлены на основе каретки или тильды в package.json вместо простого обновления до последней версии?

ОБНОВЛЕНИЕ: если ncu предназначен для обновления всего до последней версии,почему бы просто не удалить ^ или ~, чтобы сделать это?

...