0
0

More than 1 year has passed since last update.

MacでNode.jsをパッケージ化して配布

Posted at

技術要素

  • 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

配布

本題。
なかなか配布する情報がなかったので色々試行した結果を残そうと思います。
今回はコマンド実行するファイルの配布手順です。

  1. 生成されたappを圧縮して配布します。
  2. 解凍します。(解凍元と解凍先は環境に併せてください。)
    unzip -q ~/Downloads/application-name.app.zip -d ~/tools
    
  3. 拡張属性を削除します。(これをしないと開発元不明で実行できません・・・)
    xattr -rc ~/tools/application-name.app 
    
  4. 実行できるか確認します。
    ~/tools/application-name.app/Contents/MacOS/application-name
    
  5. エイリアスを設定します。(これ以降の手順は任意なのでやらなくてもOKです)
    sudo echo "alias hoge='~/tools/application-name.app/Contents/MacOS/application-name'" >> ~/.zshrc
    source ~/.zshrc
    
  6. 実行できるか確認します。
    hoge
    

さいごに

node.jsでちょっとしたツールを作成した時などにプロジェクトごと配布して利用するのはなかなか使いづらいなーと思い、パッケージ化から配布まで調査してみました。
nexeでコケまくったので時間かかりすぎた・・・

0
0
0

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
0
0