-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathdevProject.js
42 lines (41 loc) · 1.15 KB
/
devProject.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const fs = require('fs');
const path = require('path');
const execa = require('./utils/exec');
const chalk = require('chalk');
const inquirer = require('inquirer');
const getProjects = require('./utils//getProject');
const _ = require('lodash')
async function execHandler () {
const tailPkgs = getProjects()
inquirer
.prompt([
{
type: 'checkbox',
message: '😊:请选择dev的project',
name: 'name',
choices: [
new inquirer.Separator('----- 我是分割线 -----'),
...tailPkgs.map(i => ({ name: i }))
],
validate(answer) {
if (answer.length !== 1) {
return '🙅:你只能选择一个项目!';
}
return true;
},
},
])
.then(async(answers) => {
package = answers.name[0];
if(!package || !tailPkgs.includes(package)) {
throw new Error('未找到对应项目,请重试!')
}
console.log(chalk.greenBright('😄开启成功!'));
const reloadDir = path.resolve(__dirname, `../projects/${package}/src/`)
execa('npm',['run', 'dev'], {
cwd: path.resolve(reloadDir, '../'),
stdio: 'inherit',
})
});
}
execHandler()