频繁发布 npm 包时如何确保始终安装最新版本

·1 分钟·333·已发布 993 天,请注意时效性

问题背景

在一些极端情况下可能需要频繁发布 npm 包,而 npm 默认的缓存时间是 5 分钟。也就是说,在五分钟之内只会请求一次 npm 包的元数据,如果在更新后五分钟之内再次发包,默认情况下是不会检测到新版本的。

这个时候,如果你搭配 ncu(npm-check-updates 包)更新了 package.json 里的包到最新版本的话,由于 npm 的缓存,执行 npm i 会显示找不到目标 npm 包的指定版本从而更新失败。

解决方案

有两种方式可以解决这个问题:

1. 使用 --prefer-online 标志

在执行 npm installnpm update 时添加 --prefer-online 标志,设置优先从远程 registry 获取:

npm install --prefer-online xxx

2. 配置 .npmrc 文件

如果希望在项目范围内都使用这个设置,可以在项目根目录下的 .npmrc 文件中添加以下配置:

prefer-online=true

这样就不需要每次都手动添加 --prefer-online 标志了。

相关选项

  • --prefer-offline:优先使用缓存,减少网络请求
  • --cache-max=0:这个选项其实是 --prefer-online 的别名

参考资料

更多有关 npm config 的信息请参考 npm 官方文档

—— 本文完 ——

也可以看看