如何安装 npm 包的指定(旧)版本?

安装指定版本:npm install 包名@版本号(如 lodash@4.17.20)。支持 ^、~ 版本范围、latest 标签、甚至 Git 地址。本文汇总版本号写法与锁定技巧。

最佳实践
文件、模块与依赖组织示意

**语法:npm install <包名>@<版本号>。**例如:

npm install lodash@4.17.20     # 精确安装 4.17.20

版本号写法一览

npm install lodash@4.17.20     # 精确版本
npm install lodash@^4.17.0     # 兼容 4.x 的最新版(默认策略)
npm install lodash@~4.17.0     # 只允许补丁级更新(4.17.x)
npm install lodash@latest      # 最新版(标签)
npm install lodash@4.17.20 --save-exact   # package.json 里也写死精确版本

查看一个包有哪些版本可装:npm view lodash versions。

回退到旧版本的完整姿势

包升级后出问题要回退:

npm install some-package@1.2.3   # 装回旧版

建议同时加 --save-exact(或在 .npmrc 里设 save-exact=true),让 package.json 里记录精确版本而不是 ^ 范围,防止下次 npm install 又被悄悄升级。

常见问题(FAQ)

Q:package.json 里是 ^4.0.0,装了 4.1.0 想回到 4.0.5 怎么做?
npm install pkg@4.0.5 --save-exact。范围版本号本身不锁定,锁的是 package-lock.json——回退后 lock 文件会同步更新。

Q:为什么装了旧版,npm install 后又变回新版?
package.json 里写的是 ^ 范围。改成精确版本号(去掉 ^)或提交 lock 文件。

Q:能直接从 Git 仓库装特定提交吗?
能:npm install user/repo#commit-hash,或 npm install github:user/repo#branch。

Q:装完想验证版本对不对?
npm list 包名 查看实际安装版本。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台