相关文章推荐
安静的领带  ·  shell 和 command模块 · ...·  8 月前    · 
儒雅的小刀  ·  Java ...·  1 年前    · 
备案 控制台
学习
实践
活动
专区
工具
TVP
写文章
专栏首页 云前端 [译] 如何更新 package.json 中的依赖项
1 0

海报分享

[译] 如何更新 package.json 中的依赖项

原文:https://medium.com/better-programming/how-to-upgrade-dependencies-in-package-json-e5546804187f

Npm (Node Package Manager) 是一种应用于 JavaScript 编程语言的包管理器,也是 Node.js 的 JavaScript 运行时环境的默认包管理器。

在一个项目中,其包依赖项列表保存在 package.json 文件中。每个已安装的包都被分配了一个版本号,一般由 三部分组成: major.minor.patch

  • major 表示非兼容的重大 API 改变
  • minor 表示向后兼容的功能性改变
  • patch 表示向后兼容的 bug 修正

默认情况下,npm 会安装最新的版本,并在版本号前面附加一个 ^ 插入符号 ,如 “^15.2.0”。有这种插入符号的依赖项意味着至少要安装 15.2.0 的版本。

当存在一个更高的 major 版本时,它就可能被使用。比方说当时有了个 15.6.2,就会在安装时升级到该版本。

若你想更稳妥些,使用 ~ 波浪号 的 “~15.2.0” 以表示只使用 patch 位更高的版本。当然,纯 “15.2.0” 将保证只使用该精确的版本号。语义化版本命名法的更多细节见 https://semver.org/ 。

迄今为止,一切顺利。

问题来了

斗转星移,依赖愈增。当你想升级所有包以获取新特性或是修正缺陷时,你会如何做呢?

首先你得确定最新版本是多少。这里有个 GitHub 上的例子:

{
  "name": "npm_upgrading",
  "version": "1.0.0",
  "description": "A tutorial how to upgrade NPM packages",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  "repository": {
    "type": "git",
    "url": "git+https://github.com/JenniferFuBook/npm_upgrading.git"
  "author": "Jennifer Fu",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/JenniferFuBook/npm_upgrading/issues"
  "homepage": "https://github.com/JenniferFuBook/npm_upgrading#readme",
  "dependencies": {