文件、代码准备
- 新建文件 index.js
- 第一行写 #!/usr/bin/env node
- 第二行写 use strict 严格模式
- 命令行参数 可以从 process.argv里面获取
- 这是一个数组
- 数组中索引为 0 的是node命令的完整路径
- 数组中索引为 1 的是被执行文件的完整路径
- 从第二个开始则为传入的参数
- 并且按空格分隔
- 比如
node index.js name=app hi happy
- 就会得到一个数组
0: /usr/local/bin/node // 完整路径
1: /Users/node-demo/index.js // 被执行文件的完整路径
2: name=app //参数
3: hi //参数
4: happy //参数
将结果过滤为纯参数
- 那么, 如何只获取参数呢
- 使用 Array.slice(2)截取就可以的到只有参数的数组
- 但是这些参数只能通过数字索引来获取
const args = process.argv.slice(2)
args[0]
args[1]
使用 minimist库实现字典方式取值
- 那么如何可以通过 Map 键值对的方式获取呢?
- 安装 minimist 库,帮助我们来处理参数
const args = require('minimist')(process.argv.slice(2))
args['name'] //app
// 需要注意的是!每个参数之前需要使用双破折号
node app.js --name=app
需要注意的是!需要通过字典方式取值的参数之前需要使用双破折
-
那么不加双破折号的参数如何获取呢
- 举个例子:
node index.js --name=app --hi=hello yoyo
const args = require('minimist')(process.argv.slice(2))
console.log((args));
// { _: [ 'yoyo' ], name: 'app', hi: 'hello' }
- 可以看出 通过 访问 args["_"] 可以将为命名的参数都打印出来。