Node 里写一次性脚本时,如果只是接几个 --name、--dry-run 这种参数,不一定马上装 commander。Node 18+ 自带的 util.parseArgs 能先顶一下。
环境:Node.js 18+。保存成 parseargs-demo.mjs:
import { parseArgs } from 'node:util'
const { values, positionals } = parseArgs({
options: {
name: { type: 'string', default: 'mesh' },
count: { type: 'string', default: '1' },
'dry-run': { type: 'boolean', default: false },
},
allowPositionals: true,
})
const count = Number(values.count)
if (!Number.isInteger(count) || count < 1) {
throw new Error('--count 需要是正整数')
}
console.log({ values, positionals })
if (!values['dry-run']) {
for (let i = 0; i < count; i++) {
console.log(`${i + 1}: ${values.name}`)
}
}
跑一下:
node parseargs-demo.mjs --name dev --count 2 input.txt
node parseargs-demo.mjs --dry-run input.txt
这个适合很轻的本地工具。参数开始变多、要子命令或者漂亮帮助信息时,再换专门的 CLI 库会舒服些。