Electron 调用命令行(cmd)


Posted in Javascript onSeptember 23, 2019

因为最近的项目需求,需要在 Electron 客户端启动的时候启动 nginx 服务,所以研究了一下怎么在 Electron 调用 命令行。 因为 Electron 基于 Chromium 和 Node.js,可以直接使用 Node.js 的 API 和一些包。目前研究有以下两种方法:

child_process

child_process 是 Node.js 的内置模块,该模块提供了衍生子进程的能力。

实现代码:

const exec = require('child_process').exec
export function start () {
 // 任何你期望执行的cmd命令,ls都可以
 let cmdStr1 = 'your command code'
 let cmdPath = './file/'
 // 子进程名称
 let workerProcess
 runExec(cmdStr1)
 function runExec (cmdStr) {
  workerProcess = exec(cmdStr, { cwd: cmdPath })
  // 打印正常的后台可执行程序输出
  workerProcess.stdout.on('data', function (data) {
   console.log('stdout: ' + data)
  })
  // 打印错误的后台可执行程序输出
  workerProcess.stderr.on('data', function (data) {
   console.log('stderr: ' + data)
  })
  // 退出之后的输出
  workerProcess.on('close', function (code) {
   console.log('out code:' + code)
  })
 }
}

node-cmd

node-cmd 是 一个让 Node.js 调用命令行的包。

首先我们需要安装:

npm install node-cmd --save

实现代码:

var cmd=require('node-cmd');
 
  cmd.get(
    'pwd',
    function(err, data, stderr){
      console.log('the current working dir is : ',data)
    }
  );
 
  cmd.run('touch example.created.file');
 
  cmd.get(
    'ls',
    function(err, data, stderr){
      console.log('the current dir contains these files :\n\n',data)
    }
  );
 
  cmd.get(
    `
      git clone https://github.com/RIAEvangelist/node-cmd.git
      cd node-cmd
      ls
    `,
    function(err, data, stderr){
      if (!err) {
        console.log('the node-cmd cloned dir contains these files :\n\n',data)
      } else {
        console.log('error', err)
      }
 
    }
  );

以上就是两种在 Electron 中调用命令行的方法,其实都是借助了 Node.js的能力。

他们两者的区别是 child_process 可以指定命令执行的路径,默认项目根目录;而 node-cmd 不能指定执行路径,只能自己 cd 到目标路径。

我是使用的 child_process,具体使用场景还需要根据自己的需求来。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js GridView 实现自动计算操作代码
Mar 25 Javascript
js检测输入内容全为空格的方法
May 03 Javascript
JavaScript中的toLocaleDateString()方法使用简介
Jun 12 Javascript
javascript实现简单加载随机色方块
Dec 25 Javascript
JS简单实现禁止访问某个页面的方法
Sep 13 Javascript
Websocket协议详解及简单实例代码
Dec 12 Javascript
vue.js打包之后可能会遇到的坑!
Jun 03 Javascript
vue translate peoject实现在线翻译功能【新手必看】
Jun 07 Javascript
原生JS检测CSS3动画是否结束的方法详解
Jan 27 Javascript
Element 默认勾选表格 toggleRowSelection的实现
Sep 04 Javascript
微信小程序订阅消息(java后端实现)开发
Jun 01 Javascript
vue 在methods中调用mounted的实现操作
Aug 07 Javascript
layui文件上传控件带更改后数据传值的方法
Sep 23 #Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
Sep 23 #Javascript
小程序实现上下移动切换位置
Sep 23 #Javascript
微信小程序分包加载代码实现方法详解
Sep 23 #Javascript
layui扩展上传组件模拟进度条的方法
Sep 23 #Javascript
layer扩展打开/关闭动画的方法
Sep 23 #Javascript
layui字体图标 loading图标静止不旋转的解决方法
Sep 23 #Javascript
You might like
PHP 超链接 抓取实现代码
2009/06/29 PHP
PHP 命名空间实例说明
2011/01/27 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
csdn 博客的css样式 v3
2009/02/24 Javascript
Javascript中的变量使用说明
2010/05/18 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
Angular学习教程之RouterLink花式跳转
2018/05/03 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
Python_LDA实现方法详解
2017/10/25 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
Python pip配置国内源的方法
2020/02/14 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
天游软件面试
2013/11/23 面试题
J2EE中的容器都包括哪些
2013/08/21 面试题
市场营销专业推荐信
2013/11/03 职场文书
安全生产大检查方案
2014/05/07 职场文书
与美同行演讲稿
2014/09/13 职场文书
售后客服个人自我评价
2014/09/14 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
个人工作总结怎么写?
2019/04/09 职场文书