如何配置package.json让npm install时依赖自动使用最新版本?
解答
不需要每次react-datepicker发新版本就手动改package.json里的版本配置,npm的语义化版本机制本身就支持按规则自动拉取对应范围内的最新版本。
你现有配置的实际作用
你配置里react-datepicker对应的版本是^2.15.0,前面的^是npm默认的兼容版本前缀,规则很明确:
- 跑
npm install的时候,会自动装2.x.x这个大版本下的最新稳定版 - 不会跨大版本升到3.x.x及以上,能避开大版本自带的破坏性变更,不会随便把项目搞崩
- 所有2.x区间内的小版本、补丁版本更新(比如2.16.0、2.20.1这类),完全不需要你手动改package.json里的版本号,安装时自动拉符合范围的最新版
你给出的package.json示例如下:
{ "name": "example", "version": "0.1.0", "private": true, "dependencies": { "react": "^16.13.1", "react-datepicker": "^2.15.0", "react-dom": "^16.13.1", "react-scripts": "3.4.1" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" } }
要强制每次装绝对最新版的配置方法
如果你就是要不管大版本,每次跑npm install都装react-datepicker当前发布的最新正式版,把对应依赖的版本值改成下面任意一种就行:
- 写通配符
*:"react-datepicker": "*" - 用npm默认的最新版本标签:
"react-datepicker": "latest"
提醒:这种配置会自动跨大版本升级,而npm包的大版本迭代基本都会带不向下兼容的改动,很可能导致现有项目跑不起来,生产环境别这么用。
锁文件相关的注意点
如果项目里有package-lock.json这个npm生成的版本锁文件,默认跑npm install会严格按照锁文件里记录的精确版本安装,不会自动拉新版本。这种情况也不用改package.json,只要跑npm update react-datepicker,就能自动更新到符合你配置版本范围的最新版,同时同步更新锁文件的记录。
内容的提问来源于stack exchange,提问作者Adam Smith
相关产品推荐
相关产品推荐

