Electronでコマンドライン引数を受け付ける方法
ちょろっとメモだけ。
process.argv
のプロパティで、コマンドライン引数を取得できます。
これはElectronではなく普通にNode.jsの仕様ですね。
ただし注意すべき点がひとつ。
このアプリ起動時のコマンドライン引数ですが、BrowserProcessから実行した場合はのみちゃんと取得できます。
RendererProcessは文字通り、別プロセスでの実行となるので、当然といえば当然ですが。。。
RendererProcessで取得しようとすると、process.argv
は以下のような値になってしまいます。
コマンドライン引数を付けて実行
electronコマンドで実行するときに引数を追加すると、コマンドライン引数としてBrowserProcessに渡されます。
また、electron-packagerで作ったバイナリファイルに引数をつけて実行しても同じ結果となります。
以下のように、package.jsonのstartスクリプトに引数を追加してみると、コマンドライン引数が渡されるようになります。
{ // 省略 "scripts": { "build": "tsc", "prestart": "npm run build", "start": "electron . sample" }, // 省略 }
コマンドライン引数の確認
BrowserProcessのスクリプトに以下のように書いて実行してみると、コマンドライン引数が渡されてるのを確認できます。
main.ts
// コマンドライン引数をコンソールに表示
console.dir(process.argv);