TL;DR
node
のバージョン上げましょう。
ことのはじまり
この前職場のWindowsでElectronしてみたのだけれど、OS X用の.app
が上手くパッケージ化出来ているかの確認までは行えていませんでした。
復習の意味も含めて家でもちょこっとElectronしてみようと思い、iMacちゃんで簡単なアプリを記述してelectron-packager
コマンドを打ったらこんなエラーが……
$ electron-packager src test --platform=darwin,win32 --arch=x64 --version=1.2.1
/usr/local/lib/node_modules/electron-packager/common.js:3
const asar = require('asar')
^^^^^
SyntaxError: Use of const in strict mode.
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/usr/local/lib/node_modules/electron-packager/cli.js:5:14)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
むむっ、なんじゃあこりゃあ。
electron-packager
のGitHubでissue探してもそれらしい報告はない。
でもこんなエラー出たら報告されるよなぁ……何かがおかしい。
じゃあ! いっちょGitHubで初めてのissue報告にチャレンジしてみよう!
と思ってissueを書いていると「使ってるバージョン書いてね。」とあったので調べてみる。
$ electron-packager -v
/usr/local/lib/node_modules/electron-packager/common.js:3
const asar = require('asar')
^^^^^
SyntaxError: Use of const in strict mode.
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/usr/local/lib/node_modules/electron-packager/cli.js:5:14)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10
あいーたたた。バージョンも見られないってもうelectron-packager
の何も出来ないじゃん!!
そして解決へ
そういえばずっと昔にNode入れてからバージョン上げてなかったけれどもしかしてそれが原因かも。とバージョン繋がりでふと思い、バージョンアップを試しました。
取りあえず今のバージョンを確認
$ node -v
v0.12.7
化石かよ……
アップデートにはn
コマンドを入れる必要があるみたいなのでインストール
$ npm install -g n
/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
n@2.1.0 /usr/local/lib/node_modules/n
アップデート
$ n stable
install : node-v6.2.1
mkdir : /usr/local/n/versions/node/6.2.1
fetch : https://nodejs.org/dist/v6.2.1/node-v6.2.1-darwin-x64.tar.gz
######################################################################## 100.0%
installed : v6.2.1
確認
$ node -v
v6.2.1
そのままelectron-packager
を試す
$ electron-packager src test --platform=darwin,win32 --arch=x64 --version=1.2.1
Packaging app for platform darwin x64 using electron v1.2.1
Downloading electron-v1.2.1-win32-x64.zip
[============================================>] 100.0% of 52.44 MB (2.76 MB/s)
Packaging app for platform win32 x64 using electron v1.2.1
Wrote new apps to:
/Users/shy_azusa/Program/electron/test/test-darwin-x64
/Users/shy_azusa/Program/electron/test/test-win32-x64
>>> elapsed time 29s
出来た!!
さいごに
普段から使うツールでもそうでなくっても、キチンとバージョンは上げておこう……と思いました。
それと、electron-packager
のバージョン確認コマンドは$ electron-packager -v
じゃなかったです……
調べてみたけれど結局わからずでした……