2019/11/21

electron v7 以降は Raspberry Pi にデフォルトでインストールできない

Raspberry Pi で electron をインストールしようとすると以下のように落ちてしまいました。

```
> electron@7.1.2 postinstall /home/pi/test/node_modules/electron
> node install.js

(node:5861) UnhandledPromiseRejectionWarning: HTTPError: Response code 404 (Not Found)
    at EventEmitter. (/home/pi/test/node_modules/got/source/as-stream.js:35:24)
    at EventEmitter.emit (events.js:210:5)
    at module.exports (/home/pi/test/node_modules/got/source/get-response.js:22:10)
    at ClientRequest.handleResponse (/home/pi/test/node_modules/got/source/request-as-event-emitter.js:155:5)
    at Object.onceWrapper (events.js:300:26)
    at ClientRequest.emit (events.js:215:7)
    at ClientRequest.origin.emit (/home/pi/test/node_modules/@szmarczak/http-timer/source/index.js:37:11)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:583:27)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:115:17)
    at TLSSocket.socketOnData (_http_client.js:456:22)
(node:5861) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:5861) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
npm WARN saveError ENOENT: no such file or directory, open '/home/pi/test/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/home/pi/test/package.json'
npm WARN test No description
npm WARN test No repository field.
npm WARN test No README data
npm WARN test No license field.

+ electron@7.1.2
added 87 packages from 91 contributors and audited 104 packages in 22.813s
found 0 vulnerabilities
```

2019/11/19

node-ffi 公式は node 12 でビルドが通らない

node から直接Cのライブラリを呼び出せる [ffi](https://www.npmjs.com/package/ffi) というライブラリを
インストールしようとしたところ、以下のようなエラーが出てインストール出来ませんでした。

```bash
`gutter: false;
$ npm install --save ffi

> ref@1.3.5 install /home/yusuke/ffi_sample/node_modules/ref
> node-gyp rebuild

make: Entering directory '/home/yusuke/tmp/node_modules/ref/build'
  CXX(target) Release/obj.target/binding/src/binding.o
../src/binding.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE {anonymous}::WriteObject(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/binding.cc:222:43: error: no matching function for call to ‘v8::Value::BooleanValue()’
   bool persistent = info[3]->BooleanValue();

... 省略

gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
```

依存している [ref](https://www.npmjs.com/package/ref) というライブラリのビルドに失敗しているようです。

この `v8::Value::BooleanValue()` 等の参照関数はだいぶ前から deprecated だったようです。
そして、node v.12 でついに削除されました。
そのため、node v.12 以降ではビルドが通らなくなってしまったのです。


### 解決策(一時的な)
幸いなことに、この問題は既に PullRequest として報告されていました。