位置: 编程技术 - 正文

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

  • 进口关税怎么做分录
  • 小规模企业所得税优惠政策最新2023
  • 缴纳个人所得税扣除项目
  • 增值税发票污染了能补开吗
  • 非税收入如何审查
  • 什么样的情况可以补缴社保
  • 预收购货单位货款
  • 合并报表长期股权投资怎么算
  • 上个月没有结账可以做下个月的账吗
  • 企业所得税利润总额和财务报表利润总额不一致
  • 企业委托银行收款,银行以办妥手续,而企业尚未收到凭证
  • 工会发放节日慰问
  • 补缴所得税要调账吗
  • 2018年老项目应该如何交税?
  • 小规模纳税人物流服务税率
  • 公司客车高速费如何抵扣进项税?
  • 小型微利企业所得税优惠政策2022
  • 俱乐部会员有什么用
  • 特许权使用费怎么入账
  • 资源税改革对政治的影响
  • 小规模税务季报都填写哪些表格呢
  • 出口一般纳税人的税率
  • 技术转让收入属于主营业务收入吗
  • 对公支出没有发票计入什么科目
  • 合同增值税如何申报
  • 土地使用权摊销年限最新规定
  • 原材料计入什么账本
  • 成本分摊会计
  • 一个公司主营业务收入有多项
  • 开发间接费用定义
  • 在win7系统中,怎么把D盘里的文件移到C盘里?
  • linux查看文件的权限
  • windows为什么从7开始
  • 保险业营改增
  • 企业收回应收账款会计分录
  • vue使用计算属性
  • 房地产预缴所得税计算公式
  • Node.js安装过程
  • expdp/impdp oracle数据泵导入导出
  • fstrim命令
  • 旅游费用叫什么
  • 外贸企业代理出口退税给谁
  • 软件和硬件如何分开
  • 餐饮服务税率是服务类税率还是货物类
  • 百旺税控盘跨月发票作废
  • 哪些福利不需要交个税
  • 小企业会计准则和一般企业会计准则的区别
  • 短信收到电子退库收入什么意思
  • 单位收风险金违法吗
  • 公户转到老板私户要多久
  • 退回货款给客户怎么做会计分录
  • 培训费发票属于哪个税目
  • 新开公司费用
  • 往来账怎么记账
  • 汇算清缴主要检查什么
  • 向法人借款凭证摘要怎么写
  • 销售费用变动率是看本期还是本年累计
  • 培训费发票必须开吗
  • 股东现金存入公司账户,该如何做账?
  • 查看mysql执行sql日志内容
  • 关闭空闲的ide通知怎么写
  • win8.1安装更新卡住
  • 虚拟光驱uiso
  • window无法正常启动怎么办
  • win8开机直接进入传统桌面
  • 解决Android Studio下载gradle慢
  • 编写一个简单的shell
  • Python中lambda的作用
  • jquery设置鼠标样式
  • shell脚本介绍
  • linux 删除inode
  • 语音单词怎么读
  • nodejs实战
  • unity3d游戏开发标准教程pdf
  • javascrip语言
  • 火狐浏览器不支持弹出对话框操作
  • 长沙个体户怎么给员工交社保
  • 国家税务总局56号
  • 消费税的征收范围口诀
  • 增值税发票清单怎么打印出来
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设