位置: 编程技术 - 正文

利用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 内存不断增长)

  • 个所得税计算方法
  • 已申报税额是什么意思,要交吗
  • 减资需要的资料
  • 主营业务成本的数据从哪里来的
  • 企业奖金会计分录
  • 企业所得税营业税金及附加包括
  • 抵债资产涉税问题
  • 外币借款汇兑差额资本化额怎么计算
  • 公司偷税漏税是当事人责任大还是法人责任大
  • 调整凭证分录
  • 航天金税费用怎么做账
  • 支付的专家费怎么入账
  • 虚假会计凭证有哪些识别方法
  • 退货抵扣是什么意思
  • windows10如何开启自动更新
  • window休眠
  • 营收和产值的区别和联系
  • 出售货物货款预缴增值税
  • 公司帮员工代缴社保有风险吗
  • 用java做项目
  • 出租厂房代收的水电费如何账务处理
  • 扣除年度未扣除怎么计算
  • 网站国际化方案
  • water gardens
  • 外籍人员工资薪金扣除
  • 企业信用贷款还款方式
  • php+mysql+jquery实现简易的检索自动补全提示功能
  • 一般纳税人公司出售旧车怎么开票
  • 物流公司挂靠会计处理
  • 数据挖掘技术介绍
  • insg命令
  • ps怎么参考线快捷键
  • 将织梦dedecms转换到wordpress
  • zabbix 网络监控
  • 常见的数据库管理系统有
  • discuz mysql8.0
  • 开了红字信息表对方没开红票
  • 开房租发票交的税因优惠政策退税如何账务处理?
  • 税费退库怎么做账
  • php出现错误代码怎么办
  • 一般纳税人未申报可以开票吗
  • linux中备份
  • 税金及附加的科目核算有哪些
  • 企业所得税营业成本包括管理费用吗
  • 公司内部的往来款用什么表格怎么做账
  • 电商刷单返现如何做账务处理合适?
  • 库存商品结转成本的金额怎么计算
  • 税款返点如何做账务处理
  • 暂估费用的账务处理管理
  • 免税收入如何做分录科目
  • 出口货物不予免税的原因
  • 减值损失账务处理
  • centos7内存占用大
  • mac 无线网
  • win7免费升win8
  • linux系统怎么切换到命令行
  • linux手动设置ip指令
  • win7怎么禁止网络连接
  • win7系统怎么隐藏桌面
  • windows 10运行
  • 二分法查找 js
  • javascript基础编程
  • centos7如何分区
  • rgb与yuv哪个好
  • 解析函数
  • jquery1.8
  • Node.js中的全局对象有
  • unity3d基础操作
  • linux百度网盘安装
  • android的r
  • jquery根据value获取元素
  • 使用jquery实现的项目
  • 登录电子税务局显示时间错误如果解决
  • 海关免税金额现在是多少金额
  • 临沂学生医疗保险多少钱
  • 北京昌平区租房价格
  • 广东省通用机打发票怎么开
  • 怎样以实际行动争取入团
  • 云南省国税发票查询真伪查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设