开发过程中命令行工具(powershell、terminal)内无法看到 console.log 输出

Eelectron 的在开发过程中主进程 NodeJS 内往往需要 console.log 来进行简单的调式

渲染进程的 console.log 输出到开发工具控制台中,这和浏览器中的 web 调式一样

而主进程的 console.log 输出到命令行中

在主进程中有些情况下,console.log 无法在启动主进程的命令行中看到输出

现在碰到有以下两种情况分别影响输出信息:

spawn 影响 console.log

当使用 Node.js 的 spawn 方法启动 Electron 应用程序时,主进程内的 console.log 输出不会显示在命令行中。这是因为 spawn 方法会将 Electron 应用程序的输出重定向到子进程的标准输出流,而不是父进程的控制台。

要解决这个问题,您可以通过在 spawn 方法中设置 stdio 选项来将子进程的标准输出流重定向到父进程的控制台。例如:

const { spawn } = require('child_process');
const child = spawn('yarn', ['参数'], { stdio: 'inherit' });

在这个示例中,stdio: 'inherit' 选项将子进程的标准输入流、输出流和错误流都重定向到父进程的控制台,这样就可以在命令行中看到 Electron 应用程序的 console.log 输出了。

electron-log 模块影响 console.log

还有,如果在Electron 主进程中使用了 electron-log 模块,也会影响 console.log 输出

可用 console.info , console.warn , console.error 等方法代替

如果在运行启动 Electron 程序时同时使用了 ora-classic 模块,出会影响 console.log 输出

例如使用以下创建了 spinner 实例

const spinner = ora({ text: "Loading ==> ", color: "green" }).start();
spinner.text = '....'

记得在 electron:serve 运行后,还想看到主进程的 console.info 输出,则需要结束

spinner.succeed()

注:转载请注明出处博客园:王二狗Sheldon池中物 (willian12345@126.com)

Electron 开发过程中主进程的无法看到 console.log 输出怎么办的更多相关文章

  1. 17-7-20-electron中主进程和渲染进程区别与通信

    老规矩,先吐槽,再记录. 今天被上司教育了将近一个小时.因为之前自动更新的模块,我认为已经完成了,但是还有一些细节没有完善好,就一直一直的被教育~ 事情全部做完,提交以后关闭issue! electr ...

  2. Node.js中的console.log()输出彩色字体

    转自:https://www.jianshu.com/p/cca3e72c3ba7 console.log('\033[42;30m DONE \033[40;32m Compiled success ...

  3. 记一次WinForm程序中主进程打开子进程并传递参数的操作过程(进程间传递参数)

    目标:想在WinForm程序之间传递参数.以便子进程作出相应的处理. 一种错误的方法 父进程的主程序: ProcessStartInfo psi = new ProcessStartInfo(); p ...

  4. 在Python程序中的进程操作,multiprocess.Process模块

    在python程序中的进程操作 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起 ...

  5. node.js中process进程的概念和child_process子进程模块的使用

    进程,你可以把它理解成一个正在运行的程序.node.js中每个应用程序都是进程类的实例对象. node.js中有一个 process 全局对象,通过它我们可以获取,运行该程序的用户,环境变量等信息. ...

  6. python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)

    昨日内容回顾 操作系统纸带打孔计算机批处理 —— 磁带 联机 脱机多道操作系统 —— 极大的提高了CPU的利用率 在计算机中 可以有超过一个进程 进程遇到IO的时候 切换给另外的进程使用CPU 数据隔 ...

  7. console.log()方法中%s的作用

    一.console.log("log信息"); 二.console.log("%s","first","second") ...

  8. (转)Javascript中console.log()用法

    原文地址应该是这个吧:http://my.oschina.net/junn/blog/142728 注意:必须要提前打开IE的开发者模式才能看到输入 否则就会报错. IE下可以这个判断: if (co ...

  9. 快速删除项目中的输出日志console.log

    项目开发时,控制台往往有许多忘记删除或注释掉的输出日志.但是上线后总不能一个一个删吧,最近总结出几个解决思路 重写console.log方法,使其失去 输出能力 这个最直接有效,用vue框架的话放在m ...

  10. electron 主进程,和渲染进程的通信

    ipcMain https://electronjs.org/docs/api/ipc-main 当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息, 当然也有可能从主进程向渲染进 ...

随机推荐

  1. Go语言的100个错误使用场景(21-29)|数据类型

    目录 前言 3. Data types 3.5 低效的切片初始化(#21) 3.6 切片为 nil 与为空混淆(#22) 3.7 没有正确检查切片是否为空(#23) 3.8 错误的切片拷贝(#24) ...

  2. 小结_第一个Java程序

    总结: 1. Java程序的编写与执行: 步骤1: 编写. 在后缀名为.java的文件中编写Java代码,该文件称为源文件 步骤2: 编译. 针对后缀名为.java源文件进行编译,生成字节码文件. 格 ...

  3. 覆盖第三方jar包中的某一个类。妙!!

    在我们日常的开发中,经常需要使用第三方的jar包,但是很多时候总是会发现第三方的jar包中的某一个类,有问题,但是又无法继承,因为你继承后 变成了你自己的,jar包中 调用的 还是 他自己内部包含的, ...

  4. Linux 将命令的输出保存到文件

    当你在 Linux 终端中运行命令或脚本时,它会在终端中打印输出方便你立即查看.方法 1:使用重定向将命令输出保存到文件中你可以在 Linux 中使用重定向来达成目的.使用重定向操作符,它会将输出保存 ...

  5. JS leetcode 杨辉三角 超详细题解分析

    壹 ❀ 引 刷leetcode的第四天,原题出处为杨辉三角,题目描述如下: 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. ...

  6. NC23048 月月给华华出题

    题目链接 题目 题目描述 因为月月是个信息学高手,所以她也给华华出了一题,让他求: \(\sum_{i=1}^N\frac{i}{\gcd(i,N)}\) 但是因为这个式子实在太简单了,所以月月希望华 ...

  7. NC20259 [SCOI2007]降雨量

    题目链接 题目 题目描述 我们常常会说这样的话:"X年是自Y年以来降雨量最多的".它的含义是X年的降雨量不超过Y年,且对于任意 Y<Z<X,Z年的降雨量严格小于X年. ...

  8. 统一日志输出打印POST请求参数

    众所周知,request.getInputStream()只能调一次.如果希望在请求进入Controller之前统一打印请求参数(拦截器或过滤器),又不影响业务,我们只能将获取到的输入流缓存起来,后续 ...

  9. python绘图总结

    1 二维图像 1.1 二维曲线 plot(x, y, ls="-", lw=1.5, label=None) x, y:横坐标和纵坐标 ls:颜色.点标记.线型列表,如 ls='r ...

  10. 【OpenGL ES】渐变凸镜贴图

    1 前言 ​ 正方形图片贴到圆形上 中将正方形图片上的纹理映射到圆形模型上,凸镜贴图 中介绍了将圆形图片上的纹理映射到凸镜模型上.如果将原图片逐渐变为凸镜效果,中间的变化过程又是什么样的? ​ 图片的 ...