技術要素
- Mac(M1)
- Node.js
- electron-packager
パッケージ化
これは情報はそれなりにありますが、軽く載せておきます。
ちなみにはじめはnexeでやってたんですが、M1 Macだからかパッケージ化は成功しても実行ができなかったのでelectron-packagerを利用しています。
package.json
{
"name": "application-name",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"build": "electron-packager ."
},
"author": "",
"license": "ISC",
"dependencies": {
:
:
:
},
"devDependencies": {
"electron": "^22.0.0"
}
}
electron-packager
の実行にはelectronが必要です。
コマンド実行時の引数でバージョン指定すればインストールは不要みたいですが、今回はインストールして試しました。
buildを実行すればpackge.json
で指定したファイルをパッケージ化してくれます。
npm run build
配布
本題。
なかなか配布する情報がなかったので色々試行した結果を残そうと思います。
今回はコマンド実行するファイルの配布手順です。
- 生成されたappを圧縮して配布します。
- 解凍します。(解凍元と解凍先は環境に併せてください。)
unzip -q ~/Downloads/application-name.app.zip -d ~/tools
- 拡張属性を削除します。(これをしないと開発元不明で実行できません・・・)
xattr -rc ~/tools/application-name.app
- 実行できるか確認します。
~/tools/application-name.app/Contents/MacOS/application-name
- エイリアスを設定します。(これ以降の手順は任意なのでやらなくてもOKです)
sudo echo "alias hoge='~/tools/application-name.app/Contents/MacOS/application-name'" >> ~/.zshrc source ~/.zshrc
- 実行できるか確認します。
hoge
さいごに
node.jsでちょっとしたツールを作成した時などにプロジェクトごと配布して利用するのはなかなか使いづらいなーと思い、パッケージ化から配布まで調査してみました。
nexe
でコケまくったので時間かかりすぎた・・・