Electronまわりの調べごと
Electron まわりで、必要な API の使い方を調べました。
Electron でファイルの読み書き
レンダープロセスでも、node.js のファイル API が使えるようです。
ファイルダイアログも開けるようです。remote とか、よくわかりませんが、そのうち調べます。
jQuery の利用
普通に jQuery を使うと、$ が undefined になってしまうようです。とりあえず、
としておけば良いようです。
型定義ファイルに関しては、最近は特別なツールは必要ないようです。Visual Studio Code のターミナルから
とすれば、カレントフォルダの node_modules 下に型定義ファイルがインストールされます。また、この方法でインストールすれば、reference ~と参照する必要もありません。
TypeScript の import とか export とか (Electron の場合 )
1 ファイルから 1 クラスだけ出力する場合は、出力したい方のファイルの最後に
と書き、使いたい側から、
と書けばインポートできました。ここで指定するファイルの相対パスは、JavaScript ファイルを読み込んでいる HTML ファイルからの相対パスなので注意が必要です。
複数を export する方法はよくわかりません。(module.exports の方法を試しましたが、require した先で、型名が認識されず、TypeScript のコンパイルでエラーが出てしましました。)
ちなみに、
import XXX from YYYY;の形式を使った場合、export のところでうまくいきませんでした。(exports is not defined となってしまいました。)
AppData パスを取得
Windows なら、
process.env.APPDATAや
process.env.LOCALAPPDATAで取得可能のようです。プラットフォームを調べるには、
process.platform == "win32"でチェック可能です。
メニューの作成
テンプレートを書き、
Menu.buildFromTemplateで作成、
Menu.setApplicationMenuで設定します。
メインプロセスからレンダープロセスの関数を呼ぶ
メインプロセスからレンダープロセスの関数を呼ぶことはできず、プロセス間通信を使うしか無いようです。レンダープロセスの方で、待受設定をしておき、メインプロセスから BrowerWindow の
webContents.sendを呼び出してメッセージを送ります。
メイン→レンダーの場合は、同期通信は無いようです。
Visual Studio Code で electron のモジュールが無いと言われた
コマンドプロンプトから
を実行すると認識されるようになりました。
まとめ
最低限必要なことは調べ終わった感じがします。Electron ベースの IDE を作っていこうと思います。