const fs = require('fs');
const yarnLock = fs.readFileSync('./yarn.lock', { encoding: 'utf-8' });
const package = fs.readFileSync('./package.json', { encoding: 'utf-8' });
let dependencies = '';
package.replace(/\"dependencies\"\: \{[\s\S]+?(.+?)[\s\S]+?\}/g, (a, b, c, d, e) => {
dependencies = a.replace(/\"dependencies\"\: \{/, '').replace(/\}/, '');
return a;
});
const keyObj = {};
dependencies.split(',').forEach((it, index) => {
const key = it.split(':')[0].replace(/"/g, '').trim();
const reg = `[^-a-zA-Z\/]${key}\\@[\\s\\S]+?:[\\s\\S]+?version (.+?)[\\s\\S]+?resolved`;
const regExp = new RegExp(reg, 'mi');
let version = '';
yarnLock.replace(regExp, (a) => {
a.trim().replace(/version[\s\S]+?"(.+?)"/, (v) => {
version = v.replace('version ', '');
return v;
});
return a;
});
keyObj[key] = version.replace(/"/g, '');
});
console.log(JSON.stringify(keyObj));
如何将yarn.lock文件锁定的版本直接搬到package.json文件中
最新推荐文章于 2024-02-27 00:00:00 发布