49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
|
|
export function parseArgs(args) {
|
|
const result = {
|
|
command: null,
|
|
options: {},
|
|
};
|
|
|
|
// 解析命令
|
|
if (args[0] === 'install' || args[0] === 'uninstall') {
|
|
result.command = args[0];
|
|
args = args.slice(1);
|
|
} else if (args.length === 0) {
|
|
return result;
|
|
}
|
|
|
|
// 解析选项
|
|
for (let i = 0; i < args.length; i++) {
|
|
const arg = args[i];
|
|
|
|
if (arg.startsWith('--remote=')) {
|
|
result.options.remote = arg.split('=')[1];
|
|
} else if (arg === '--remote' && i + 1 < args.length) {
|
|
result.options.remote = args[i + 1];
|
|
i++; // 跳过下一个参数
|
|
} else if (arg.startsWith('--file=')) {
|
|
result.options.file = arg.split('=')[1];
|
|
} else if (arg === '--file' && i + 1 < args.length) {
|
|
result.options.file = args[i + 1];
|
|
i++; // 跳过下一个参数
|
|
} else if (arg === '--dry-run') {
|
|
result.options.dryRun = true;
|
|
} else if (arg === '--verbose') {
|
|
result.options.verbose = true;
|
|
} else if (arg === '--framework' || arg === '-f') {
|
|
result.options.framework = true;
|
|
} else if (!arg.startsWith('--')) {
|
|
// 未知参数,可能是错误输入
|
|
console.warn(`⚠️ 忽略未知参数: ${arg}`);
|
|
}
|
|
}
|
|
|
|
// 为 install 命令设置 remote 默认值
|
|
if (result.command === 'install' && !result.options.remote) {
|
|
result.options.remote = '/sdk/dev-monitor.js';
|
|
}
|
|
|
|
return result;
|
|
}
|