<bdo id="4g88a"><xmp id="4g88a">
  • <legend id="4g88a"><code id="4g88a"></code></legend>

    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)

    posted @ 2023-11-30 18:37  池中物王二狗  閱讀(451)  評論(0編輯  收藏  舉報
    轉載入注明博客園 王二狗Sheldon Email: willian12345@126.com https://github.com/willian12345
    免费视频精品一区二区_日韩一区二区三区精品_aaa在线观看免费完整版_世界一级真人片
    <bdo id="4g88a"><xmp id="4g88a">
  • <legend id="4g88a"><code id="4g88a"></code></legend>