位置: 编程技术 - 正文

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

  • 劳务报酬个人所得税税率表
  • 关税纳税申报时间
  • 未开票收入如何填写增值税申报表
  • 整形医院有收费标准么
  • 发票上盖了老税号怎么办
  • 个体户4年不注销的后果消
  • 股东退股如何清算表格
  • 个人所得税生产经营所得税率
  • 非居民企业所得税税率10%
  • 影响无形资产项目金额的有
  • 汇总记账凭证会计核算组织形式适用于
  • 售后回租涉税
  • 个人住房转让纳税标准
  • 用党费返还款购置资产应如何账务处理?
  • 外商企业所得税可享受什么优惠政策
  • 已提完折旧车辆可以卖吗
  • 票据追索权向谁追索
  • 注销地税需要什么资料
  • 蔬菜批发的利润怎么算
  • 营业成本包括哪些会计科目
  • 应交税费有余额怎么结转
  • 非企业性单位包括哪些单位
  • 贴息债券计算公式
  • 补缴房产税需要什么资料
  • 上个月暂估这个月成本怎么调整
  • win11界面不停刷新
  • 银行承兑汇票的转让一般通过什么渠道
  • 关于销售免税品的规定
  • php网站架设
  • Win11 Build10.0.22000.51预览版正式推送 (附完整更新日志)
  • php字符串变量
  • 支付宝消费支出
  • 公司收到预付款怎么用处去
  • linux操作系统文件系统
  • php商品对比功能怎么用
  • 发票开出后只收到部分款怎么处理?
  • 提供劳务取得劳务收入10万元
  • php 邮件发送
  • 普通发票的开票规定
  • 前端工程搭建
  • 请求转发与重定义的区别
  • php中命名空间的路径
  • 公允价值变动损益会计处理
  • 终止经营净利润含义
  • 美团算钱
  • mongodb subtract
  • 办公室购买电脑计入
  • centos 安装方法
  • 采用汇兑的方式归还前欠货款
  • 用于企业职工福利有哪些
  • 工资计提多了冲账怎么办
  • 以银行存款支付所欠税金48000
  • 工资补偿款是什么意思
  • 定金与订金不同
  • 工程未竣工预付款怎么办
  • 农产品收购发票如何抵扣进项税
  • 出纳需要遵循的原则
  • 预收账款余额在贷方是什么意思
  • 外埠存款账务处理方法
  • 营业成本包括哪些会计科目
  • 建账的基本原则是什么
  • sql server高级编程
  • 数据库中自动增长
  • nvidia发布了G6X
  • 简述操作系统更新设置方法
  • ati2plab.exe是什么进程 ati2plab进程安全吗
  • winxp系统怎么设置默认账户登入
  • centos怎么样
  • linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)
  • windows7电脑无法正常运行
  • windows7系统下给WORD2010设置打开密码的方法
  • win7系统步骤
  • istio源码解析
  • cocos2dx3.2 xcode中资源路径设置问题
  • jquery select2的使用心得(推荐)
  • linux中的ls命令的功能是变换工作目录到目标指定目录
  • ajax简单实例
  • 吉林省地方税务局
  • 为什么要征收城乡土地
  • 七创社开放时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设