LoginSignup
34
37

More than 5 years have passed since last update.

ElectronでChrome Extension使えるようにするまでのハマりどころ

Last updated at Posted at 2016-06-22

そんなに使わないのでいつも流し見していたのだけど、どうしてもReact Dev ToolをElectronに入れたくなって本気出したら詰んだ。

ドキュメントはこのあたり。両方読まないとはまりがち。

最終形のjsはこんな具合

const {BrowserWindow} = electron;

const os = require('os')
const path = require('path')
const fs = require('fs')

function createWindow() {
   :
   :
  // react dev toolのID
  const id = "fmkadmapgofadopljbjfkapdkoienihi"

  // extensionの場所、"~/Library"だとダメだった
  const extensionDir = path.resolve(os.homedir(), "Library/Application Support/Google/Chrome/Default/Extensions/")

  // version指定
  const versions = fs.readdirSync(`${extensionDir}/${id}`).sort()
  const version = versions.pop()

  // 利用
  BrowserWindow.addDevToolsExtension(`${extensionDir}/${id}/${version}`)
}

app.on('ready', createWindow);

ポイントなど

  • ドキュメントには書いてることとか
    • Chromeからインストールしておく必要がある。
    • extensionのIDを調べておかないといけない
  • ハマりどころとか工夫とか
    • BrowserWindow.addDevToolsExtensionready後じゃないと使えない
    • "~/Library"のような相対指定だとうまくいかないっぽかった。
    • なのでos.homedir()path.resolveを使って解決。(直接絶対パスにしてもいい)
    • versionも指定しないといけない。
    • 調べてもいいけど、多分だるいだろうなーと思ったので、fs.readdirSyncを使うって楽をする。
      • sortしてpopすれば多分最新versionがとれる。はず。
34
37
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
37