位置: 编程技术 - 正文

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

  • 企业的承兑汇票贴息很高说明什么
  • 框架合同有合同金额吗
  • 个税申报没填过租房信息,却有怎么回事
  • 小规模无票收入填在哪一栏
  • 什么情况下用资本公积科目
  • 个人房租费收入怎么做账
  • 公司转工程款到个人银行卡需要交个税吗
  • 咨询服务费要交税吗
  • 跨年的费用需要冲减
  • 行政单位发放的政府补贴款
  • 支付房屋租金计入什么会计科目
  • 理财收益高的产品
  • 房地产企业增值税税率是多少
  • 含税进货价款怎么算
  • 以前年度的税金及附加
  • 甲供工程会计分录
  • 发票专用章能刻章吗
  • 小规模纳税人建筑行业
  • 小规模纳税人没有达到起征点怎么申报附加
  • 协会会费计入什么会计科目二级
  • 其他应付款下的固定资产怎么报废
  • 工龄补偿款
  • 没有收入业务招待费要全额调增吗
  • macOS Catalina10.15.2值得升级吗 macOS Catalina10.15.2更新了什么
  • windows11怎么安装iis
  • 如何做批发
  • 国家规定发票多久之内可以开
  • 资产评估中折现怎么算
  • php怎么添加背景图片
  • 建筑业红冲发票如何处理
  • 销售赔偿款增值税和所得税
  • win11安卓子系统教程
  • 未达起征点免税额是什么意思
  • 跨境电商小规模怎么做账报税
  • 红冲后的发票税怎么办
  • python np数组
  • 认缴制无实收资本怎么算
  • 发票第一联需要盖发票专用章吗
  • 在途资金属于什么科目
  • 开具免税的发票,"税率"栏该如何填开?
  • 通过SQL Server 2008数据库复制实现数据库同步备份
  • 法人股的利弊
  • 单位举办活动
  • 如何计算保费合同未规定加成比例
  • 商品流通企业应交那些税费
  • 接受捐赠的固定资产按什么入账
  • 车辆购置税多少个点?
  • 最新出口退税申报需要哪些资料
  • 增资减资改变股东要交税吗
  • 进项税额转出为什么加到销项税额里
  • 企业之间的往来款要1900万要交多少税
  • 收到的专项资金怎么入账
  • 自来水差额征税申报表填写
  • 《关于工资总额组成的规定》第四条
  • 水表怎么借水
  • 单位车辆保险费
  • 跨国企业在国外设立工厂的战略地位
  • windows 开始
  • windows10 硬件
  • windows电脑加速
  • 怎样禁用ie
  • macbookpro屏幕显示
  • centos安装选项怎么选
  • linux怎样过滤一个关键字
  • 微软发布更新的时间每月
  • html的基本语法规则
  • bootstrap模态窗口
  • opengl示例
  • linux每隔1s执行一次命令
  • 安卓wifi已连接不可上网设置
  • jquery如何解决跨域问题
  • shell脚本逐条执行
  • python去掉末尾的换行符
  • js给input添加属性
  • 对税务工作提出意见建议
  • 怎么查询工程师名下的项目
  • 国家税务总局大连电子税务局
  • 树叶加树叶等于几
  • 广东增值税发票勾选平台
  • 新疆医保哪里查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设