W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Electron 支持 Chrome DevTools 擴展,可用于擴展 Chrome 的開發(fā)人員工具的功能,以調(diào)試流行的 Web 框架。
加載 DevTools 擴展的最簡單方法是使用第三方工具,來為您實現(xiàn)自動化過程。 electron-devtools-installer 是一個受歡迎的 NPM 包。
如果你不想使用工具加載,你也可以手動完成所有必需的操作。要在 Electron 中加載擴展,您需要通過 Chrome 下載它,找到它的文件系統(tǒng)路徑,然后通過調(diào)用 ses.loadExtension API 將它加載到您的 Session 中。
下面以React Developer Tools為例:
在 Google Chrome 中安裝擴展。
打開chrome://extensions
,找到擴展程序的ID,像 fmkadmapgofadopljbjfkapdkoienihi
一樣的 hash 字符串。
找到 Chrome 擴展程序的存放目錄:
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions
;~/.config/google-chrome/Default/Extensions/
~/.config/google-chrome-beta/Default/Extensions/
~/.config/google-chrome-canary/Default/Extensions/
~/.config/chromium/Default/Extensions/
~/Library/Application Support/Google/Chrome/Default/Extensions
。將擴展的位置傳遞給 ses.loadExtension
API。 對于 React Developer Tools v4.9.0
, 它看起來像:
const { app, session } = require('electron')
const path = require('path')
const os = require('os')
// 在 macOS 下
const reactDevToolsPath = path.join(
os.homedir(),
'/Library/Application Support/Google/Chrome/Default/Extensions/fmkadmapgofadopljbjfkapdkoienihi/4.9.0_0'
)
app.whenReady().then(async () => {
await session.defaultSession.loadExtension(reactDevToolsPath)
})
說明:
loadExtension
返回一個包含 擴展對象 的 Promise,其中包含加載的擴展有關(guān)的元數(shù)據(jù)。 在加載頁面前,此 Promise 需要被 resolve(例如使用 await
表達(dá)式)。 否則將無法保證擴展被加載。loadExtension
無法在 app
模塊 ready
之前調(diào)用,也不能被內(nèi)存(非持久) 會話調(diào)用。loadExtension
。您可以將擴展的 ID 傳遞給 ?ses.removeExtension
? API,以將其從您的 Session 中刪除。 每次應(yīng)用重新啟動,擴展不會持續(xù)。
Electron 僅支持 有限的 chrome.* APIs ,所以使用不支持的 ?chrome.*
? 擴展的 APIs 可能無法工作。
以下 DevTools 擴展程序已經(jīng)通過測試,可以在 Electron 中正常工作:
首先,請確保擴展仍在維護(hù)中,并與最新版本的 Google Chrome 兼容。 我們不能為不受支持的擴展提供額外支持。
如果擴展可以在 Chrome 上運行,但不能在 Electron 上運行, 在 Electron 的 issue Tracker 中提交一個錯誤,并描述擴展的哪個部分不能按預(yù)期工作。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: