如何理解 ES2019 后 sort 方法在各浏览器中的稳定性
2026/5/9 3:37:33
使用 Node.js 创建命令行应用(CLI)主要有以下几种方式,从简单到复杂逐步介绍:
直接使用 Node.js 内置的命令行 API(process.argv)
Node.js 自带process.argv属性,它是一个数组,包含命令行参数:
示例(cli.js):
console.log(process.argv.slice(2));// 输出用户参数constargs=process.argv.slice(2);if(args.length===0){console.log('请提供参数');}else{console.log('你输入的参数:',args.join(' '));}运行:node cli.js hello world
优点:无依赖、最轻量,适合极简单的脚本或原型。
缺点:需要手动解析选项(如 --flag、-v)、子命令、帮助信息等,复杂时代码容易混乱。
(Node.js 18+ 有内置实验性解析器,但仍不推荐用于生产级 CLI。)
使用轻量级参数解析库
最流行的是:
示例(使用 Commander.js):
#!/usr/bin/env nodeconst{program}=require('commander');program.version('1.0.0').command('greet <name>').description('问候某人').option('-e, --excited','兴奋模式').action((name,options)=>{console.log(`Hello,${name}${options.excited?'!!!':''}`);});program.parse();这些库适合大多数场景,开发快速、社区活跃。
使用完整 CLI 框架
oclif 示例(生成项目后):
npx oclif generate mycli它会自动脚手架一个完整项目,支持插件扩展。
哪种方式最佳?
没有绝对的最佳,取决于项目规模和需求:
总结推荐:
无论哪种,都建议在 package.json 的 “bin” 字段配置可执行命令,便于全局安装(npm link 或发布到 npm)。如果项目用 TypeScript,oclif 或 Gluegun 会更友好。