mirror of
https://github.com/vbenjs/vben-admin-thin-next.git
synced 2025-01-25 02:58:40 +08:00
60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
import chalk from 'chalk';
|
|
import Koa from 'koa';
|
|
// import inquirer from 'inquirer';
|
|
import staticServer from 'koa-static';
|
|
import portfinder from 'portfinder';
|
|
import { resolve } from 'path';
|
|
import viteConfig from '../../vite.config';
|
|
import { getIPAddress } from '../utils';
|
|
// import { runBuild } from './postBuild';
|
|
|
|
// const BUILD = 1;
|
|
// const NO_BUILD = 2;
|
|
|
|
// start server
|
|
const startApp = () => {
|
|
const port = 9680;
|
|
portfinder.basePort = port;
|
|
const app = new Koa();
|
|
|
|
app.use(staticServer(resolve(process.cwd(), viteConfig.outDir || 'dist')));
|
|
|
|
portfinder.getPort(async (err, port) => {
|
|
if (err) {
|
|
throw err;
|
|
} else {
|
|
app.listen(port, function () {
|
|
const empty = ' ';
|
|
const common = `The preview program is already running:
|
|
- LOCAL: http://localhost:${port}/
|
|
- NETWORK: http://${getIPAddress()}:${port}/
|
|
`;
|
|
console.log(chalk.cyan('\n' + empty + common));
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
// export const runPreview = async () => {
|
|
// // const prompt = inquirer.prompt({
|
|
// // type: 'list',
|
|
// // message: 'Please select a preview method',
|
|
// // name: 'type',
|
|
// // choices: [
|
|
// // {
|
|
// // name: 'Preview after packaging',
|
|
// // value: BUILD,
|
|
// // },
|
|
// // {
|
|
// // name: `No packaging, preview directly (need to have dist file after packaging)`,
|
|
// // value: NO_BUILD,
|
|
// // },
|
|
// // ],
|
|
// // });
|
|
// const { type } = await prompt;
|
|
// if (type === BUILD) {
|
|
// await runBuild(true);
|
|
// }
|
|
// };
|
|
startApp();
|