はじめに
Javascript(特にnode.js環境)でプログラムを書いていると、作ったプログラムをexe化して配布したくなることがあります。しかし、ネット上の情報を見ても難しそうなものばかり。
本記事では、pkgというツールを用いて、できるだけ簡単に.jsファイルをexeに変換する方法について解説します。
node.jsを確認
そもそも、コンピューターにnode.jsがインストールされていなければ何も始まりません。まずは次のコマンドを入力し、node.jsの存在を確認しましょう:
node -v
npm -v
この結果、バージョンが表示されればOKです。表示されない場合、node.jsのダウンロードから始めましょう。ダウンロードはこちら:
プロジェクトフォルダを用意
次に、PC上の適当な場所にプロジェクトフォルダを作成しましょう。その中にconvert.jsを配置します。
📁 workspace/
├─ convert.js
このconvert.jsは、exe化しようとしているプログラムです。あなたのファイルをここにコピーしましょう。
package.jsonを作成
続いて、このフォルダ内で以下のコマンドを実行しましょう:
npm init -y
これによってpackage.jsonが自動で作成されます。
依存モジュールをインストール
プログラム内で、例えば「require(prismarine-nbt);」のようにモジュールを必要としている場合はその依存モジュールもインストールしておく必要があります。この場合、「npm install prismarine-nbt」というコマンドを入力すればいいですね。これはご自身のプログラムによって異なります。
pkgをグローバルにインストール
続いて、jsファイルをexe化するのに今回用いるツールである、pkgをグローバルにインストールしていきます。以下のコマンドを実行しましょう:
npm install -g pkg
このように「-g」をつけるとどこからでもアクセスできるようになります。
package.jsonを少し編集
先ほど自動作成したpackage.jsonを開き、以下のように追加しましょう:
{
"name": "アプリの名前",
"version": "1.0.0",
"main": "convert.js",
"bin": "convert.js", ← 追加
"scripts": {},
"dependencies": {
"prismarine-nbt": "^2.3.1"
}
}
ご覧の通り、binのキーにjsファイル名を追加する必要があります。
exeをビルド
最後に以下のコマンドでexeをビルドしましょう:
pkg .
なお、No available node version satisfies ‘node20’のようにエラーが表示される場合には、Node.jsバージョンを明示的に指定する必要があります。例えばWindowsの場合、
pkg . --targets node18-win-x64
といったコマンドを実行すればOKです。Linuxの場合、node18-linux-x64となり、同様にMacOSの場合node18-macos-x64となります。
これによって次のようなexeファイルが生成されます:
📁 workspace/
├─ convert.js
├─ package.json
├─ convert.exe ← これが実行ファイル
おしまい
このようにして、.jsを.exeに変換することができます。一度変換してしまうと、node.jsがない環境でも実行できるようになり、配布する際に非常に便利ですので是非お試しください~。
他の記事もどうぞ。