位置: 编程技术 - 正文

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

  • 个税系统里的免税收入在哪删除
  • 代理费住宿费都包括什么
  • 某项目全部投资资金的40%由银行贷款
  • 营业外支出影响损益吗
  • 咨询服务费预收率怎么算
  • 固定资产无法使用不能带来经济利益是否需计提租金
  • 单位承担的社保费用计入应付职工薪酬科目吗
  • 餐费补贴要交个人所得税吗
  • 个体户不足征是否要交房产税
  • 调整上年度所得税计提分录
  • 核定征收是每个月都要交税吗
  • 主营业务成本的贷方可以是哪些科目
  • 销项发票采集不出来怎么回事
  • 出售固定资产要做收入吗
  • 增值税发票是否含税
  • 误工费保险公司全部付吗
  • 不得免征和抵扣的税额
  • 企业所得税季初人数
  • 发票开出多久可以作废
  • 资产负债表里面的应收账款包括哪些
  • 公司收到利息怎么记账
  • 签证费会计分录
  • 免税收入税额的含义
  • 事业单位授权支付一体化退库
  • php中删除文件的函数
  • 会计科目暂存款是什么意思
  • 为什么系统弹出登录此网络
  • 鸿蒙系统怎么开启OTG
  • intel me有什么用
  • 承租人经营租赁会计分录
  • php的数组函数
  • php生成csv文件
  • dxva2.dll是什么意思
  • 委托境外机构研发费加计扣除80%
  • 贷款损失准备是什么科目借贷方向
  • php设置中文
  • thinkphp jquery实现图片上传和预览效果
  • 自动驾驶讲解
  • web前端三大主流框架vue
  • node.js的安装和配置
  • RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling `cublas‘
  • 所得税季度申报弥补以前年度亏损
  • 最新预提房租会计分录
  • website
  • 上年度固定资产少入账了怎么办?
  • 律师事务所可不可以对外投资呢
  • 金蝶标准版怎么查应收应付款
  • 生产企业免抵退红字冲减
  • 公司吸收合并是利好吗
  • 收据大写后面的空格怎么填
  • 自制小汽车
  • 全年一次性奖金并入或单独哪个好
  • 置换补贴算在优惠价里吗
  • 应付账款怎么处理
  • 去年多计提的企业所得税怎么调整
  • 小规模纳税人增值税专用发票税率
  • 网上订机票怎么拿报销凭证
  • 职工体检可以从工会经费支出
  • 服务咨询类合同
  • 金蝶暂存凭证怎样转正常凭证
  • 预计负债计入哪里
  • mysqlyog安装教程
  • linux下安装mysql简单的方法
  • mysql5.7版本下载
  • 服务器时间和电脑时间
  • linux的ps命令用法
  • win10怎么安装运行库
  • win10的outlook在哪
  • windows8怎么关闭广告弹窗
  • 安卓接入点
  • linux怎么使用shell
  • Unity3D游戏开发标准教程
  • nodejs操作mysql
  • node.js alert
  • 图片在线预览html5
  • 进程间的通信方
  • python写一个复制文件的程序
  • 自然人申报密码丢失如何找回
  • 云南定额发票真伪查询平台
  • 公司被分立,应将分立后的单位
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设