位置: 编程技术 - 正文

利用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
  • 纳税申报表上的二维码有什么用?
  • 固定资产的原值是含税价?
  • 跨年度其他业务收没有结转入调整
  • 发票分开开票
  • 盈余公积补亏账务处理分录
  • 房地产开发精装房是国家规定吗
  • 客户退款已发生的业务
  • 增资扩股如何操作
  • 事业单位预算外收入
  • 长期待摊费用计提摊销的会计分录
  • 在建工程转固后又发生成本
  • 企业员工报销法律规定
  • 自建公司什么意思
  • 生产负荷的计算
  • 以前年度损益调整贷方余额表示什么
  • 资本公积账务重组
  • 调整成本调整单分录
  • 投资利税率计算器在线计算
  • 怎么查以前申报的财务报表
  • 专票的六位开票代码指的是什么
  • 技术服务合同要盖骑缝章吗
  • 收购公司款项的支付是利好还是利差
  • 商业企业收取的服务费
  • wordpress自定义api
  • 职工福利费的税收金额怎么填写
  • 细说php
  • jupyter用法
  • 会计凭证作用的说法中不正确的是
  • elementui form rules
  • php 文件目录
  • 新制度设置了应缴财政款科目原制度设置了什么科目
  • 兼职人员的劳务费标准
  • thinkphp框架怎么用
  • 农民工专用账户回执单
  • 预缴的附加税需要转出吗
  • 什么是财务报表分析,方法有哪些
  • 帝国cms插件编写教程
  • 财务费用的相关认定
  • 科技型中小微企业贷款贴息贴保项目入库
  • 经济利益的总流入
  • 固定资产折旧准备属于什么科目
  • 税务相关政策的解读
  • 工程分包需要注意什么
  • 公户的结算卡是否可以转账
  • 广告设计要交文化事业建设
  • 建筑企业增值税怎么算
  • 费用报销单的摘要和报销项目怎么写
  • 电梯广告租赁属于什么服务
  • 企业固定资产清理流程
  • 建筑公司需要什么人员
  • 矿山运输设备的点检绩效考核
  • 计提盈余公积比例
  • 如何申请高新技术企业认定
  • 外帐和内帐区别
  • Linux环境mysql5.7.12安装教程
  • win10快速切换到桌面快捷键
  • winxp开机界面后老重启
  • 64位Windows XP系统盘空间占用很大空间怎么减肥
  • linux中的ssh命令
  • win8系统怎么安装win10
  • mac新建窗口快捷键
  • centos挂载lvm硬盘
  • 怎么用代码设置选项
  • 简述在windows中创建用户的步骤
  • shell脚本监控进程
  • u盘备份系统操作步骤
  • cmd文件操作基本命令清单
  • 单例类python
  • jquery 添加
  • js函数嵌套函数的return
  • python中子类继承父类的静态方法吗
  • unity iphone
  • Android自定义动画
  • android获取网络数据
  • Python中使用装饰器来优化尾递归的示例
  • 税控发票开票软件密码怎么修改?
  • 承租房变更承租人申请怎么写
  • 林则徐家训带来的启示
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设