Electron 开发过程中主进程的无法看到 console.log 输出怎么办
开发过程中命令行工具(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 输出怎么办的更多相关文章
- 17-7-20-electron中主进程和渲染进程区别与通信
		老规矩,先吐槽,再记录. 今天被上司教育了将近一个小时.因为之前自动更新的模块,我认为已经完成了,但是还有一些细节没有完善好,就一直一直的被教育~ 事情全部做完,提交以后关闭issue! electr ... 
- Node.js中的console.log()输出彩色字体
		转自:https://www.jianshu.com/p/cca3e72c3ba7 console.log('\033[42;30m DONE \033[40;32m Compiled success ... 
- 记一次WinForm程序中主进程打开子进程并传递参数的操作过程(进程间传递参数)
		目标:想在WinForm程序之间传递参数.以便子进程作出相应的处理. 一种错误的方法 父进程的主程序: ProcessStartInfo psi = new ProcessStartInfo(); p ... 
- 在Python程序中的进程操作,multiprocess.Process模块
		在python程序中的进程操作 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起 ... 
- node.js中process进程的概念和child_process子进程模块的使用
		进程,你可以把它理解成一个正在运行的程序.node.js中每个应用程序都是进程类的实例对象. node.js中有一个 process 全局对象,通过它我们可以获取,运行该程序的用户,环境变量等信息. ... 
- python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)
		昨日内容回顾 操作系统纸带打孔计算机批处理 —— 磁带 联机 脱机多道操作系统 —— 极大的提高了CPU的利用率 在计算机中 可以有超过一个进程 进程遇到IO的时候 切换给另外的进程使用CPU 数据隔 ... 
- console.log()方法中%s的作用
		一.console.log("log信息"); 二.console.log("%s","first","second") ... 
- (转)Javascript中console.log()用法
		原文地址应该是这个吧:http://my.oschina.net/junn/blog/142728 注意:必须要提前打开IE的开发者模式才能看到输入 否则就会报错. IE下可以这个判断: if (co ... 
- 快速删除项目中的输出日志console.log
		项目开发时,控制台往往有许多忘记删除或注释掉的输出日志.但是上线后总不能一个一个删吧,最近总结出几个解决思路 重写console.log方法,使其失去 输出能力 这个最直接有效,用vue框架的话放在m ... 
- electron 主进程,和渲染进程的通信
		ipcMain https://electronjs.org/docs/api/ipc-main 当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息, 当然也有可能从主进程向渲染进 ... 
随机推荐
- uni-app+vue3会遇到哪些问题
			已经用 uni-app+vue3+ts 开发了一段时间,记录一下日常遇见的问题和解决办法 uni-app 中的单端代码 uni-app 是支持多端,如果你想让你的代码,只在部分平台使用,那么就需要用的 ... 
- Hello,World!   6.28
			代码 public class Hello{ public static void main(String[] args){ System.out.print("Hello,World!&q ... 
- SP21690 POWERUP - Power the Power Up 题解
			题目传送门 前置知识 扩展欧拉定理 解法 直接对 \(a\) 和 \(b^c\) 分讨,跑一遍扩展欧拉定理就行了. 另外由于本题的特殊规定 \(0^0=1\),故需要在当 \(a=0\) 时,对 \( ... 
- NC17877 整数序列
			题目链接 题目 题目描述 给出一个长度为n的整数序列 \(a_1,a_2,...,a_n\) ,进行 \(m\) 次操作,操作分为两类. 操作1:给出 \(l,r,v\) ,将 \(a_l,a_{l+ ... 
- Ubuntu下使用PlatformIO开发STC89/STC12/Arduino
			安装VSCode 从 https://code.visualstudio.com/Download 下载最新的 deb 版, 通过命令行安装 sudo apt install ./code_1.59. ... 
- 【framework】IMS启动流程
			1 前言  IMS 是 InputManagerService 的简称,主要负责输入事件管理. 1.1 基本概念 输入设备:屏幕.电源/音量.键鼠.充电口.蓝牙.wifi 等 设备节点:当输入设备可 ... 
- SpringCloud服务注册与发现Eureka实战
			介绍 Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务 ... 
- MySQL Unknown error 1267
			1.问题说明 最近在mysql中运行一段SQL直接报错: 有一点要说一下,这个navicat给出的报错太简短只有错误码,还得自己去查有点垃圾,不知道新版如何? 2.问题原因 这里可以看到问题出在t2. ... 
- r0tracer 源码分析
			使用方法 修改r0tracer.js文件最底部处的代码,开启某一个Hook模式. function main() { Java.perform(function () { console.Purple ... 
- 多线程系列(十) -ReadWriteLock用法详解
			一.摘要 在上篇文章中,我们讲到ReentrantLock可以保证了只有一个线程能执行加锁的代码. 但是有些时候,这种保护显的有点过头,比如下面这个方法,它仅仅就是只读取数据,不修改数据,它实际上允许 ... 
