Files
dooring/script/publish.js
2021-11-26 16:44:05 +08:00

66 lines
2.2 KiB
JavaScript

/*
* @Author: yehuozhili
* @Date: 2021-07-04 10:28:57
* @LastEditors: yehuozhili
* @LastEditTime: 2021-10-07 14:40:30
* @FilePath: \dooringx\script\publish.js
*/
const fs = require('fs-extra');
const path = require('path');
const spawn = require('child_process').spawn;
const execSync = require('child_process').execSync;
const root = process.cwd();
execSync('npm run changelog');
execSync('npm run translate');
const rootPath = path.resolve(root, 'packages', 'dooringx-lib');
const templatePath = path.resolve(root, 'packages', 'dooringx-plugin-template');
const templateJsonPath = path.resolve(templatePath, 'template', 'template.json');
const templatePkgPath = path.resolve(templatePath, 'package.json');
const readme = path.resolve(root, 'README.md');
const libreadme = path.resolve(root, 'packages', 'dooringx-lib', 'README.md');
const libPkgPath = path.resolve(root, 'packages', 'dooringx-lib', 'package.json');
fs.removeSync(libreadme);
fs.copyFileSync(readme, libreadme);
const res = execSync('npm view dooringx-lib version');
const version = res.toString().replace('\n', '');
const libpkgVersion = JSON.parse(fs.readFileSync(libPkgPath).toString()).version;
console.log('npm version is' + version);
if (version === libpkgVersion) {
console.log('you might forget to change version');
return;
}
//同步template
const templatejson = JSON.parse(fs.readFileSync(templateJsonPath).toString());
templatejson.devDependencies['dooringx-lib'] = '^' + libpkgVersion;
fs.removeSync(templateJsonPath);
fs.writeFileSync(templateJsonPath, JSON.stringify(templatejson, null, 2));
const templatePkgJson = JSON.parse(fs.readFileSync(templatePkgPath).toString());
templatePkgJson.version = libpkgVersion;
fs.removeSync(templatePkgPath);
fs.writeFileSync(templatePkgPath, JSON.stringify(templatePkgJson, null, 2));
const command = `npm`;
const args = [`publish`];
const child = spawn(command, args, {
stdio: 'inherit',
env: process.env,
shell: true,
cwd: rootPath,
});
child.on('close', (i) => {
if (i !== 0) {
process.exit(1);
}
});
const tpl = spawn(command, args, {
stdio: 'inherit',
env: process.env,
shell: true,
cwd: templatePath,
});
tpl.on('close', (i) => {
if (i !== 0) {
process.exit(1);
}
});