-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
67 lines (63 loc) · 1.51 KB
/
script.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
const { exec } = require('child_process');
const args = process.argv.slice(2);
let func = args[0]; // d - 开发模式, p - 生产模式
let mname = ''; // 运行的模块名称
let filename = ''; // 运行的文件名称
let useArg = 0;
// 运行的函数
if (func != null) {
func = func.toLowerCase();
if (func === '-d' || func === '-p') {
func = func.slice(1);
} else {
mname = func;
}
}
if (func == null) {
func = 'd';
}
// 运行的模块名称
if (args.length >= 2) {
if (mname === '') {
mname = args[1];
} else {
filename = args[1];
}
useArg++;
}
// 运行的文件名称
if (args.length >= 3 && filename === '' && args[2][0] !== '-') {
filename = args[2];
useArg++;
}
if (filename === '') {
filename = 'index.ts';
}
if (mname == null || mname === '') {
console.error('请输入运行的模块');
} else {
const tsconfigPath = `packages/${mname}/tsconfig.json`;
const extraArgs = `${args.slice(useArg + 1).join(' ')}`;
let execCmd = `tsx --tsconfig ${tsconfigPath} packages/cli/${filename} ${extraArgs}`;
if (func === 'p') {
execCmd = `tsc -p ${tsconfigPath}`;
}
if (func === 'p') {
console.log('正在编译源文件……');
}
// 执行命令
exec(execCmd, (err, stdout, stderr) => {
if (err) {
console.error(err);
} else if (stderr) {
console.error(stderr);
} else {
if (stdout != null && stdout !== '') {
console.log(stdout);
}
if (func === 'p') {
console.log('源文件编译成功');
}
}
});
}