LoginSignup
8
6

More than 5 years have passed since last update.

electron-packager コマンドでの Use of const in strict mode. エラー

Posted at

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じゃなかったです…… :innocent:
調べてみたけれど結局わからずでした…… :disappointed:

8
6
1

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
8
6