位置: 编程技术 - 正文

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

  • 海南增值税发票图片
  • 财务软件增值税
  • 调整未分配利润影响所得税吗
  • 人力资源公司代招的岗位可以去吗
  • 哪些进项税额可以转出
  • 外商投资企业与内资合资是国企吗
  • 企业清算业务程序
  • 固定资产采用工作量法计提折旧怎么算
  • 未使用的固定资产提不提折旧
  • 防洪费怎么申报
  • 营改增的主要内容
  • 科技公司出售市场价格
  • 会员充值赠送
  • 为什么要抵消损益
  • 企业接收政府划入资产的税务处理办法
  • 财产租赁合同印花税申报期限
  • 营改增后印花税计税依据文件
  • 非居民企业从居民企业取得分红
  • 应收账款怎么样转入以前年度损益调整
  • 印花税税基含不含增值税
  • 私立医院适用什么法律
  • 预交增值税后如何处理
  • 母子公司之间支付的租赁费可以税前扣除么
  • 现金日记账对方科目是什么意思
  • 教育附加税怎么退
  • 苹果手机发票要验证码吗
  • 苹果7plus续航
  • 付临时工工资计入什么科目
  • 债务优化是做什么的工作
  • deepin 20 wifi
  • Mac笔记本电脑截图
  • phpadmin官网
  • 如何关闭win11系统
  • 分公司与总公司的关系
  • 腾讯云php
  • 用友预收货款账务处理
  • 商品销售税金及附加包括哪些
  • php数组操作函数
  • 取得交易性金融资产的交易费用
  • php curl_multi_init
  • 小程序和h5页面的区别
  • day01-GUI坦克大战01
  • 公司在银行买的理财产品怎么做账
  • 企业有外币账户怎样做账
  • 电子税务怎么绑定开票员信息
  • 承兑汇票上能手写名字吗
  • 正解之途
  • 养猪死亡
  • 跨月抵扣的发票能退回吗
  • 交哪些费用
  • 先征后退增值税是否征收企业所得税
  • 生产企业电费怎么做账
  • 先付款后开票如何入账
  • 从公司账户转给出纳备注
  • 融资租赁承租方怎么做账
  • 发票线上申领线下配送
  • 非营利机构如何申请
  • 其他应收款如何计提坏账准备
  • 给职工发放的米面油记入什么
  • 旅游饮食服务业与营业无关的收入计入营业外收入账户
  • mysql数据库性能
  • centos更新命令
  • win10无人值守文件使用方法
  • win10磁盘占用100%卡死
  • windows7如何启动记事本
  • linux几种安装方式
  • mmtraylsi.exe是什么进程 有什么作用 mmtraylsi进程查询
  • msstat.exe - msstat是什么进程 有什么用
  • unity hover
  • js自动生成序号
  • python 效率优化
  • shell 查找文件并赋值shell变量
  • 跑马灯 css
  • python xml 解析
  • 孙其功陪你学之——unity3d进程暂停
  • 税务局和国税
  • 深圳税务局关于个体户开具普通发票有关问题的通知
  • 企业购票员有风险吗
  • 国家税务总局里面怎么改办税人
  • 企业并购重组的方式有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设