Node实现获取命令行参数的方法及操作是什么
Admin 2022-11-12 群英技术资讯 568 次浏览
在开发cli
工具时,往往离不开获取指令中各种参数信息,接下来本文将带着你如何在Node.js
中获取执行时的参数。
process
是nodejs
内置的一个对象,该对象提供了当前有关nodejs
进程的信息。(例如获取当前进程id,执行平台等与当前执行进程相关的对象和方法)
node process文档
在该对象中,有一个arg属性,它可以获取当前node执行时传入各个参数数据。
我们创建一个index.js文件,先打印下process.args里面是什么东西
console.log(process.arg)
// node index.js
[
'D:\\software\\nodejs\\node.exe',
'D:\\project\\script\\src\\index.js'
]
登录后复制
从上面的输出结果,可以得到当前执行的node程序路径(也就是process.execPath
返回值)和执行的文件(index.js
)路径,我们像使用其他cli
工具一样添加一些参数试试
node index.js name=zhangsan age=18
登录后复制
[
'D:\\software\\nodejs\\node.exe',
'D:\\project\\script\\src\\index.js',
'name=zhangsan',
'age=18'
]
登录后复制
可以看到我们传入的name
参数与age
参数也被获取到了
需要注意的是argv中的参数是通过空格来分割的
通常,我们会在命令行每个参数前面添加--
字符,用来识别传入的各个参数。
例如在esbuild
构建工具中
esbuild app.jsx --bundle --outfile=out.js
登录后复制
例如在vite
构建工具中
vite --config my-config.js
登录后复制
修改一下上面的命令为
node index.js --name=zhangsan --age=18
登录后复制
将会得到如下输出结果
[
'D:\\software\\nodejs\\node.exe',
'D:\\project\\script\\src\\index.js',
'--name=zhangsan',
'--age=18'
]
登录后复制
从上面两个例子和官方文档中,我们可以得知argv的前两个参数都是固定的,在获取用户传入的参数我们需要process.argv.slice(2)
一下,只获取从下标2开始的元素。 也即是
[
'--name=zhangsan',
'--age=18'
]
登录后复制
有了这些数据之后,我们需要再进一步解构里面的参数,将前面的--
去除掉,把key=value
改变成{key:value}
方便我们在开发中进行参数获取。 最终我们得到了这样子的函数:
process.argv
数组,并切片从下标2开始--
开头,是则视为用户传入参数=
区分出对应的key
和value
,其返回的是[key,value]
Object.fromEntries
转换为一个对象const arguments = process.argv.slice(2);
const params = Object.fromEntries(
arguments.reduce((pre, item) => {
if (item.startsWith("--")) {
return [...pre, item.slice(2).split("=")];
}
return pre;
}, []),
);
console.log(params)
// { name: 'zhangsan', age: '18' }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍javascript休眠或等待怎么用的内容,下文示例对新手学习和理解javascript休眠有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看。
相信不少人都有玩过扫雷这个游戏,这篇文章不是教大家如何玩这款游戏,主要给大家分享的是如何用JavaScript如何实现一个扫雷游戏,感兴趣的朋友就继续往下看吧。。
基于JS怎样实现图片拖曳,代码怎样写?下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧
vue修改网站图标的方法和流程是什么?一些朋友想要修改网站图标,但是不清楚要怎样做,因此下面给大家分享一下修改网站图标的流程供大家参考,感兴趣的朋友就跟随小编一起看看吧。
本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了事件循环的相关内容,下面一起来看一下,希望对大家有帮助。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008