command-plugin
Version:
提交规范和自动化command脚本
57 lines (56 loc) • 2.4 kB
JavaScript
const execSync = require('child_process').execSync;
const path = require('path');
const fs = require('fs');
const chalk = require('chalk'); // console.log 的 颜色
console.log('------------ 自动升级README.md 脚本运行中 ------------');
const mdStr = fs
.readFileSync(path.resolve(process.cwd(), 'README.md'))
.toString()
.split('\n');
const infolog = (msg) => {
console.log(chalk.grey(`command-plugin - ${msg}`));
};
// line 是有内容的一行
let line = 0;
// 1.读取写入
const packageJsonStr = fs
.readFileSync(path.resolve(process.cwd(), 'package.json'))
.toString();
let packageName = JSON.parse(packageJsonStr).name;
let packageVersion = JSON.parse(packageJsonStr).version;
let packageAuthor = JSON.parse(packageJsonStr).author;
let packageHomepage = JSON.parse(packageJsonStr).homepage;
if (!packageName || !packageVersion || !packageAuthor || !packageHomepage) {
infolog(`请完善你package.json的 name,author,version,homepage 字段后重试.现在退出`);
process.exit(1);
}
let packageLabel = JSON.parse(packageJsonStr).label;
let packageLabelRes = ``;
for (let i in packageLabel) {
let text = `<a href=${packageLabel[i]["src"]}><img src="https://img.shields.io/static/v1?label=${packageLabel[i]["frontName"]}&message=${packageLabel[i]["behindName"]}&color=${packageLabel[i]["color"]}" alt="temp" /></a>`;
packageLabelRes = packageLabelRes + text;
}
// 行数要保持一致,这里我都是19行
let resText = `<div align="center"><h1>
<br/>
🤖
<br />
${packageName}
<br /><br />
</h1>
<sup>
<br />
<br />
<a href="${packageHomepage}"><img src="https://img.shields.io/static/v1?label=version&message=v${packageVersion}&color=blue" alt="npm package" /></a>${packageLabelRes}
<a href="${packageHomepage}"> <img src="https://img.shields.io/static/v1?label=Author&message=${packageAuthor ? packageAuthor : "作者"}&color=yellow" alt="demos" /></a>
<a href="${packageHomepage}"> <img src="https://img.shields.io/static/v1?label=Contribute&message=welcome&color=green" alt="demos" /></a>
<br />
</a>
<br />
Translations: <a href="">🇨🇳 汉语</a>
</sup>
</div>`;
// 第一的数据是vscode 的行数 -1,第二个是 有内容的行号
mdStr.splice(0, line, resText);
fs.writeFileSync(path.resolve(process.cwd(), "README.md"), mdStr.join('\n'), 'utf8');
export {};