如何批量获取package.json依赖最新版本制作版本对比Excel表
依赖版本统计Excel生成方案
关于npm-check-updates的使用误区
npm-check-updates(简称ncu)默认执行时仅做版本查询,不会修改任何本地文件,只有加了-u/--upgrade参数时才会改写package.json里的版本号,完全可以用来做版本查询。
操作步骤
- 第一步:全局安装ncu(已安装可跳过)
npm install -g npm-check-updates
- 第二步:进入项目根目录,执行命令导出全量依赖的版本数据为JSON文件,该命令会同时读取生产依赖、开发依赖的当前版本和最新版本,不会改动本地任何配置
ncu --all --jsonAll > dep-data.json
- 第三步:在项目根目录新建
gen-excel.js脚本,写入以下代码,作用是把JSON数据转成Excel可直接打开的CSV格式,自动去除版本号前的^/~等范围符号,不需要后续做分列处理
const fs = require('fs'); const rawData = JSON.parse(fs.readFileSync('./dep-data.json', 'utf8')); const allDependencies = { ...rawData.dependencies, ...rawData.devDependencies }; // 按预期表格结构生成行数据 const tableRows = [ ['依赖包名', '当前已安装版本', '最新发布版本'] ]; Object.entries(allDependencies).forEach(([pkgName, versionInfo]) => { const currentVer = (versionInfo.current || '').replace(/^[\^~]/, ''); const latestVer = (versionInfo.latest || '').replace(/^[\^~]/, ''); tableRows.push([pkgName, currentVer, latestVer]); }); // 写入CSV文件,加BOM头避免Windows下Excel打开中文乱码 const csvContent = '\ufeff' + tableRows.map(row => row.join(',')).join('\n'); fs.writeFileSync('./依赖版本统计.csv', csvContent, 'utf8'); console.log('文件已生成:依赖版本统计.csv,直接用Excel打开即可');
- 第四步:执行脚本生成表格文件
node gen-excel.js
执行完成后根目录生成的依赖版本统计.csv可以直接双击用Excel打开,列结构和预期完全一致,无格式错乱问题。
如果需要区分生产依赖、开发依赖,可以在表头新增「依赖类型」字段,遍历依赖时分别标记对应类型即可。
内容的提问来源于stack exchange,提问作者Aurazo Script
相关产品推荐
相关产品推荐

