NPM Caret 与 Tilde 版本规则 | AI生成和翻译

Home 2026.02

package.json 中,~^ 符号控制 npm 如何更新你的 dependencies:

^ (caret) - minor 和 patch 更新

~ (tilde) - 仅 patch 更新

实际示例:

{
  "dependencies": {
    "react": "^18.2.0",     // 可以更新到 18.x.x
    "lodash": "~4.17.21",   // 只能更新到 4.17.x
    "express": "4.18.2"     // 精确版本,不进行更新
  }
}

大多数项目使用 ^,因为它在获取 bug fixes 和新特性与避免 breaking changes 之间取得了平衡。如果你需要最大程度的稳定性(例如在 production 应用中),你可能会使用 ~ 或精确版本,并提交你的 package-lock.json 以确保每个人都获得完全相同的 dependencies。


Back Donate