位置: 编程技术 - 正文

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

  • 一般纳税人增值税怎么做账务处理
  • 消费税的税目有多少
  • 出售已使用固定资产增值税申报表
  • 已付款收不到发票怎么办
  • 员工劳动保险赔多少钱
  • 专利费代缴
  • 房地产企业转让股权缴纳土地增值税
  • 小规模减免附加税会计分录怎么做
  • 用货物抵账该怎么交税
  • 取得运输单位开具的普通发票
  • 小规模印花税怎么报
  • 验资报告需要什么材料
  • 设备修理费
  • 应交税金年终怎么计算
  • 甲方代付农民工工资合同
  • 投资收益科目的借贷方向
  • 无形资产资本化和费用化的区别
  • 苹果mac怎么删除照片
  • 所得税季度预缴怎么算
  • mssvr.exe - mssvr是什么进程 什么用
  • 什么是增值税进项税额和销项税额
  • php怎么定义全局变量
  • php json
  • 企业实际发生的经济业务事项都需要
  • 购货返利
  • 送货上门需要其他费用吗
  • 败诉方承担诉讼费缴直接付给法院还是胜诉方
  • bootstrap-
  • id命令的哪个参数可显示用户账号的uid信息
  • javascript基础编程
  • 已经结账的账目怎么冲红
  • 结转损益的凭证需要打印吗
  • 管理费用增加记哪方
  • 购进农产品直接销售核定农产品增值税进项税额计算表
  • 金蝶怎么设置销售出库单模板
  • vue多平台
  • 房地产企业将开发产品用于职工福利
  • 食堂购买固定资产会计处理
  • 调整以前年度销项税怎么填申报表
  • 车辆购置税收优惠
  • 生活服务的行业
  • 国际货运代理一个月大概有多少收入
  • 支付水费委托收款
  • 对公账户发票和普通发票不一样吗
  • 小规模纳税人免税政策2022
  • 年初未分配利润借方增加还是减少
  • 企业内部股权转让协议书
  • 去年的费用怎么做分录
  • 税控设备抵减增值税金额
  • 分支机构可不可以不建账合并到总机构?
  • 本月应付电费计入哪个账户
  • 员工垫付的费用会计分录
  • 预收货款转营业外收入
  • 开具其他发票收入填报异常
  • 支付劳务费是劳务所在地吗
  • 以下各项不属于肝郁气滞证表现的是
  • 政府奖励我公司的钱
  • 小企业的建账流程
  • 帐薄和账簿区别
  • win8老是弹出广告
  • dvdrom是什么
  • ubuntu 8.04.1 LTS 下的cpu温度监控软件lm-sensors
  • 戴尔dell optiplex 3050MT 安装固态硬盘
  • 怎么学linux
  • windows7电脑怎么变快
  • linux怎么设置桌面
  • linux调整桌面分辨率
  • android 图像处理
  • perl子函数
  • js显示时间并且之后秒数实时更新
  • jquery form表单
  • java.基础
  • 关于android工程中的assets目录的正确说法
  • dos 改名
  • python编程求一个数的平方
  • 法线贴图应该贴在哪里
  • js写一个类
  • 社保在税务系统交,有何用意
  • 土地占用税是什么意思
  • 南通开发区地图高清版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设