Electron と TypeScript と WebPack と Visual Stuido Code


Electron + TypeScript で開発を進めてきたのですが、import/export 周りがちゃんと使えないのがしんどくなってきたので、WebPack を導入してみました。

WebPack のインストール

以下のコマンドで OK です。

Error: Cannot find module 'typescript'
と出てしまうことがあったのですが、その場合は、コマンドプロンプトで、

としたら直りました。この辺、よくわかってないんですよね…

プロジェクトのディレクトリに、webpack.config.js を作ります。メインプロセス用のソースは、src/main 以下に、レンダラープロセス用のソースは src/renderer 以下に置き、出力はそれぞれ dist/main/main.js と dist/renderer/editor.js に出力する設定です。(こちらの記事を参考にさせていただきました。)

コード1: webpack.config.js

devtool:"source-map"
を設定しておくと、ソースマップが出力されるため、デバッガーでアタッチできるようになります。

tsconfig.json は以下のように編集しました。

コード2: tsconfig.json

あとは、ターミナルから webpack のウォッチを起動しておきます。

export/import の書き方

複数のクラスをエクスポート

自作クラス(enum)をエクスポートするには、クラスの前に export とつけます。

このクラスをインポートしたい場合は、

とします。

一つだけエクスポート

もし、エクスポートしたいクラスが一つの場合は、

として、

でインポートできます。

定数をエクスポート

定数もやってみたらエクスポートできました。文字列テーブルなどに便利かもしれません。

インポートは以下の感じです。

これで、TR. とやると、コード補完も効いてくれます。

node や electron のモジュールをインポート

これまで通り、require を使っても問題ありませんでしたが、node.js のモジュールに関しては、

とやっても行けました。Visual Studio Code でコード補完も効きました。

electron の方は、

という感じで、electron のモジュールがインポートできます。(ちなみに、dialog は remote 経由じゃないとダメっぽいので、これではエラーでした。)

まとめ

WebPack 、よく記事ではみかけたのですが、導入してみたのは初めてでした。便利ですね。この辺りも使いこなしつつ、自作言語の処理系を TypeScript に移そうと思います。