axios-miniprogram/scripts/play.ts

49 lines
1.4 KiB
TypeScript
Raw Normal View History

2023-05-05 10:59:37 +08:00
import enquirer from 'enquirer';
2023-08-12 15:48:36 +08:00
import consola from 'consola';
2023-08-15 15:43:24 +08:00
import { exec, resolve, safeExit } from './utils';
import { readdirSync } from 'fs';
2023-05-04 10:39:52 +08:00
2023-05-05 10:59:37 +08:00
safeExit(main);
2023-05-04 10:39:52 +08:00
async function main() {
2023-08-15 15:43:24 +08:00
const { framework } = await enquirer.prompt<{ framework: string }>({
type: 'select',
name: 'framework',
message: '请选择跨端框架',
choices: readdirSync(resolve('examples')).filter((i) => i !== '.DS_Store'),
2023-08-15 15:43:24 +08:00
});
const metas = framework === 'taro' ? taroMetas() : uniAppMetas();
2023-05-05 10:59:37 +08:00
const { platform } = await enquirer.prompt<{ platform: string }>({
type: 'select',
name: 'platform',
message: '请选择启动平台',
2023-08-15 15:43:24 +08:00
choices: metas,
2023-05-05 10:59:37 +08:00
});
2023-05-04 10:39:52 +08:00
2023-08-12 15:48:36 +08:00
console.log();
consola.info(
2023-08-15 15:43:24 +08:00
`启动${metas.find((meta) => meta.name === platform)!.message}...`,
2023-08-12 15:48:36 +08:00
);
2023-08-15 15:43:24 +08:00
exec(`pnpm --filter @examples/${framework} dev:${platform}`);
2023-05-05 10:59:37 +08:00
}
2023-08-15 15:43:24 +08:00
function taroMetas() {
2023-05-05 10:59:37 +08:00
return [
2023-08-15 15:43:24 +08:00
{ name: 'h5', message: 'H5' },
2023-05-05 10:59:37 +08:00
{ name: 'weapp', message: '微信小程序' },
{ name: 'swan', message: '百度小程序' },
{ name: 'alipay', message: '支付宝小程序' },
{ name: 'tt', message: '抖音小程序' },
{ name: 'qq', message: 'QQ 小程序' },
{ name: 'jd', message: '京东小程序' },
{ name: 'dd', message: '钉钉小程序' },
{ name: 'lark', message: '飞书小程序' },
{ name: 'kwai', message: '快手小程序' },
];
2023-05-04 10:39:52 +08:00
}
2023-08-15 15:43:24 +08:00
function uniAppMetas() {
return [...taroMetas(), { name: 'xhs', message: '小红书小程序' }];
}