devdocsのスタンドアロンなアプリが欲しいと思い探したところ、electronを利用したものとしてragingwind/devdogsとegoist/devdocs-appを見つけた。electronはnodejsとchromiumを使用しているのでjavascriptを書くだけでデスクトップアプリケーションを作成できるもの。
これをパッケージングしようと考えて調べた所、asar、electron-packagerの記事を見つけた。
- 30分で出来る、JavaScript (Electron) でデスクトップアプリを作って配布するまで - Qiita
- Electron packager tutorial | Christian Engvall
asarはelectron以外をパッケージング、electron-packagerはelectronごとパッケージングするという違いがある。以下はdevdocs-appが一応動くことを確認した際のメモ。
1. とりあえず動くことの確認
- まずcloneしたディレクトリに入って
npm install
して必要なパッケージをダウンロードする- warningが出る場合がある
- ここで
electron .
とするとアプリが起動する
2. パッケージング
- asarは
asar pack . ./myapp
としてみたが実行時のエラーが出て起動できず - electron-packager: 実行ファイルと共有ライブラリを作ることが出来た
electron-packager ./devdogs/ --out=myapp --platform=linux --arch=x64 --icon=./devdogs/res/devdogs.png --electron-version=1.4.15 --prune=true --overwrite
- versionについては
electron -v
で確認した - 共有ライブラリなどが入ったフォルダがmyapp/XXX-linux-x64に出来る
- devdocs-appはXXX-linux-x64フォルダを移動しても実行できた
- devdogsはエラーが出た
A JavaScript error occurred in the main process Uncaught Exception: Error: Cannot find module 'configstore' at Module._resolveFilename (module.js:455:15) at Function.Module._resolveFilename (/home/tak0kada/bin/devdogs-app/Devdogs-linux-x64/resources/electron.asar/common/reset-search-paths.js:35:12) at Function.Module._load (module.js:403:25) at Module.require (module.js:483:17) at require (internal/module.js:20:19) at Object.<anonymous> (/home/tak0kada/bin/devdogs-app/Devdogs-linux-x64/resources/app/index.js:6:21) at Module._compile (module.js:556:32) at Object.Module._extensions..js (module.js:565:10) at Module.load (module.js:473:32) at tryModuleLoad (module.js:432:12)