前言
还记得之前 Python 下学过一个好用的模块 Fire,关于 Fire 模块的简介是:
对 Fire 模块的介绍有兴趣的小伙伴可以移步至:Python 命令行工具库:Fire。
而笔者平时工作用的语言是 typescript,或者也可以说是 Node.js,过去想要在脚本中访问命令行中的参数,往往使用环境变量的方式,如访问命令行中 export 的 SITE_ENV 环境参数,则使用:
process.env.SITE_ENV
这种方式比较笨重,而且可能不同操作系统可能会遇到奇葩问题,如环境变量大小写等问题。
由于某些机缘巧合,需要使用类似于 Python 的 Fire 模块的功能,因此经过摸索后,发现这样一个模块:
js-fire 模块可以实现与 Python Fire 模块一样的效果!npm 地址:https://www.npmjs.com/package/js-fire
学习路径
1. 安装 js-fire 模块;
npm install js-fire --save-dev
2. 使用 js-fire 进行编程;
const fire = require('js-fire');
const calculator = {
__description__: 'I am a math machine',
double: number => {
// I double things
return 2 * number
},
add: (n1 = Math.PI, n2) => {
return n1 + n2
},
misc: {
year: () => '1999',
brand: () => 'casio',
hello: name => `hello ${name}`,
},
}
fire(calculator);
3. 使用命令行接口;
1). 使用 double 方法:
node demo.js double --number=2
执行结果如下:
2). 使用 add 方法:
node demo.js add --n1=2 --n2=3
执行结果如下:
n1 有默认值为 Math.PI,因此也可以使用其默认值,如:
node demo.js add --n2=3
此时,执行结果如下:
3). 使用 misc 方法组内的方法:
node demo.js misc year
执行结果如下:
node demo.js misc brand
执行结果如下:
node demo.js misc hello --name=dylan
执行结果如下:
4. js-fire 彩蛋;
npx js-fire fs -- writeFileSync --path=hello.txt --data="hiii"
执行后效果如下:
当然,当我们不知道一个模块有什么方法可以用时,还可以用这样的方式去查询:
npx js-fire fs -- -h
不用一行 js 代码,就能使用简单的模块去完成一些相对简单的任务,有点香啊~
如果本文对您有帮助,麻烦点赞、关注!
感谢~