这个repo是用来辅助Verdaccio,手动检测npm的包有无更新并且自动标记的工具
当本地安装deps时,Verdaccio检测到缓存过期,将会主动去上游获取数据,虽然在缓存周期内再次获取依赖将会命中缓存,但是首次运行的效率并不客观,我们需要一个机制去定时同步这个更新。
首先配置好Verdaccio,方法这里不再赘述。
配置好后需要更改其缓存周期,位于config.yaml
中:
uplinks:
npmjs:
url: https://registry.npm.taobao.org
maxage: 100y
这样当本地缓存了某个包时,将不会去上游获取数据。
之后配置好.env
VERDACCIO_STORAGE_DIR=/tmp/storage
UPLINK_FETCH_TIMEOUT=3000
执行命令:
yarn
node index
将会遍历所有缓存的包进行更新检查,如果检查到了更新,该脚本会删除包缓存的package.json
文件,那么下次通过verdaccio获取这个依赖信息时将会触发更新。
最终需要更新的包会写入dist/package.json
,可以直接运行yarn
对其进行预更新。
- 没有考虑私有包
- 当脚本运行时期过长,且某个包在此期间更新了依赖,且这个依赖已经被脚本处理过时,手动预更新会出错(找不到某个更高版本的包)。