tachybase_todo/publish.js
ChengLei Shao b1086ee728
Fix multiple apps (#316)
* chore: multiple apps

* fix: multiple apps with application options

* fix: multiple apps AppSelector type

* chore: multiple apps with plugin config

* chore: rename multiple-apps to multiple-apps-manager

* chore: application association

* chore: plugin multi-app manager
2022-04-24 20:22:50 +08:00

30 lines
867 B
JavaScript

const { readdir } = require('fs/promises');
const path = require('path');
const { exec } = require('child_process');
const getDirectories = async (source) =>
(await readdir(source, { withFileTypes: true }))
.filter((dirent) => dirent.isDirectory())
.map((d) => d.name)
.map((d) => path.resolve(source, d));
const packageDirs = ['packages/core', 'packages/plugins', 'packages/app'];
Promise.all(packageDirs.map((d) => getDirectories(d)))
.then((res) => res.flat())
.then((res) =>
res.forEach((d) => {
exec(`cd ${d} && npm unpublish -f; npm publish`, (error, stdout, stderr) => {
if (error) {
console.log(`error: ${error.message}`);
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
}),
);