位置: 编程技术 - 正文

利用Node.js编写跨平台的spawn语句详解(node.js 教程)

编辑:rootadmin

推荐整理分享利用Node.js编写跨平台的spawn语句详解(node.js 教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs编程,node.js在哪里写代码,node.js在哪里写代码,node.js怎么用,用nodejs做的项目,nodejs编程,node.js怎么用,nodejs编程,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

Node.js 是跨平台的,也就是说它能运行在 Windows、OSX 和 Linux 平台上。很多 Node.js 开发者都是在 OSX 上做开发的,然后再将代码部署到 Linux 服务器上。由于 OSX 和 Linux 都是基于 Unix 的,因此两者共性很多。Windows 也是 Node.js 官方支持的平台,只要你通过正确的方式写代码,就能在各个平台上毫无压力的跑起来。

Node.js 的子进程 (child_process) 模块下有一 spawn 函数,可以用于调用系统上的命令,如在 Linux, macOS 等系统上,我们可以执行

来调用 npm 命令。

然而,同样的语句在 Windows 上执行则会报错。

因为在 Windows 上,当我们执行 npm 时,我们实际执行的是 npm.cmd 批处理,而在 Windows 上, .cmd, .bat 批处理是无法脱离 cmd.exe 这一解释器而单独运行的。

因此,我们需要显式地调用 cmd

或者使用在调用 spawn 函数时,设置 shell 选项为 true 以隐式地调用 cmd (该选项添加自 Node.js v6 版本)

利用Node.js编写跨平台的spawn语句详解(node.js 教程)

另外,虽然在 Linux, macOS 等系统上不需要设置 shell 选项,命令也能够正常执行;设置 shell 为 true 也不会妨碍命令的执行,只是会额外的产生一个本不必要的 shell 进程,影响性能。

因此,如果想要编写跨平台的 spawn 命令,而又不想增加额外的开销的话,可以这样写

第三方模块 cross-spawn

关于 spawn 函数的跨平台写法,除了自己编写代码的时候做处理,也有第三方模块封装好了相关细节,如 cross-spawn。

使用该模块,可以在调用 spawn 函数时,自动根据当前的运行平台,来决定是否生成一个 shell 来执行所给的命令。

而且,还能够

支持低于 v6 的 Node.js 版本 (使用 shell 选项需要至少 Node.js v6); 跨平台地支持 shebang; 对命令和参数中的字符进行转义更为方便。

安装

用法

参考文档

在 Windows 上衍生 .bat 和 .cmd 文件

总结

标签: node.js 教程

本文链接地址:https://www.jiuchutong.com/biancheng/376363.html 转载请保留说明!

上一篇:Nodejs 发送Post请求功能(发短信验证码例子)(nodejs发送post请求socket hand up)

下一篇:Nodejs高扩展性的模板引擎 functmpl简介(nodejs 内存不断增长)

  • 堤防是啥
  • 交城市维护建设税填什么凭证
  • 银行开具的票据怎么查询
  • 企业计提增值税 附加税
  • 今日头条测试收款如何记账?
  • 专利年费滞纳金计入什么科目
  • 城建税减免性质代码 0申报
  • 筹建期印花税退税分录
  • 公司租用个人房屋如何记账
  • 税务局代开的劳务费发票可以入账吗
  • 固定资产折旧法律法规
  • 收到发票付款是抹了零头怎么做账
  • 黄金以旧换新怎么算费用
  • 应收账款管理制度设计毕业设计
  • 商品溢余做销售的会计分录怎么写?
  • 滞留票是什么意思
  • 工资表中有哪些项目
  • 0税率发票纳税申报如何填报
  • 通讯费补贴如何领取
  • 竹笋属于什么税目类别
  • 增值税简易征收一览表
  • 居民企业清算企业所得税
  • 变动成本总额怎么求单位变动成本
  • 转结本月工资
  • 如何进行网速测试设置
  • 广告法 保险公司承保
  • uc浏览器不让访问网页
  • thinkphp怎么用
  • Win11文件夹怎么加密设置密码
  • 中投公司投资的股票
  • PHP:stream_context_get_options()的用法_Stream函数
  • PHP:class_uses()的用法_spl函数
  • 简易计税方法的适用主体有
  • 真三国在哪下载
  • cvpr2020结果
  • 森林抗锯齿
  • service的启动方式及生命周期
  • 科技推广和应用服务业行业
  • 单位发放给职工的养老金
  • 海关进口增值税计入什么科目
  • 微信浏览器支持webassembly
  • 若依idea
  • 金蝶软件怎么录入发票号
  • sql server基本知识
  • c#连接数据库的基本步骤是什么
  • 工程建设期间发生的差旅费
  • 应交税费和应交增值税的关系
  • 存货周转率越高好还是越低好
  • 缴纳社保需要办理什么手续
  • 公司变更名字后,公账怎么办
  • 单位社保缴费基数比例
  • 工资完税证明怎么开
  • 库存的周转天数
  • Transact_SQL 小手册
  • 快速插入大量数据的asp.net代码(Sqlserver)
  • linux命令实现
  • win2008 server r2 intel无法安装网卡驱动不存在英特尔PRO适配器的解决方法
  • alpine安装apt
  • ubuntu系统怎么修改ip地址
  • centos怎么样
  • bios 设置
  • mac怎么获取文件路径快捷键
  • windows102021年更新
  • linux卸载apache2
  • excel的exceladdinrd加载项出现问题
  • 新闻客户端app
  • android:View的setTag和getTag使用
  • 学习雷锋好榜样歌词
  • nodejs数据库数据渲染
  • python爬虫代理ip巨量http 代理8元/日
  • jquery的实现原理
  • python切片菜鸟教程
  • python flask 路由
  • javascript中的匿名函数
  • 北京12366纳税服务平台
  • 从价计征和从租计征的区别,有什么优缺点
  • 异地可以打印银行清单吗?
  • 租的土地自己盖的厂房,厂房怎么摊销
  • 金三是什么鱼竿?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设