

**発生している問題**  
Node.jsでFFIを使いたいのですが、`npm install ffi`としたときに、

[code]

    gyp Err: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe failed with exit code: 1
    
[/code]

とのエラーが表示されます。  
windows build toolsはインストール済みです。

**環境**

  * Node 14.15.0

**補足**

  * コメントにて、Nodeのバージョン自体が対応していない可能性があるとのご指摘をいただき、`The current version is tested to run on node v0.6, v0.8, v0.9 and v0.10.`と書いてあるので、試しにv0.10に落としてみましたがやはり、

[code]

    gyp ERR! stack Error: `gyp` failed with exit code: 1
    
[/code]

とエラーが表示されます。


CC BY-SA 4.0
2020-11-07T10:19:28.700
71782
2022-08-23T13:05:40.517
2020-11-07T14:26:11.300
42632
42632
question
node.js npm
npm install ffi で"MSBuild.exe failed with exit code 1"のエラー


`ffi`のサポートはNode11で終わってしまったようです。  
Node12以降では`ffi-napi`が代替といっていいようです。https://www.npmjs.com/package/ffi-napi  
こちらを使えば、エラーは発生しませんでした。  
`ffi-napi`はインストール方法も使い方も`ffi`と同じです。

**インストール方法**  
windowsの場合、  
管理者権限でPowershellに`npm install --global windows-build-tools`で[windows build
tools](https://www.npmjs.com/package/windows-build-tools)をインストールします。  
次に`npm -g install node-gyp`で[node-gyp](https://github.com/nodejs/node-
gyp)をインストールします。  
次に、`npm install ffi-napi`と入力します。

**使い方**  
`var ffi = require('ffi-napi');`  
と書く以外は`ffi`と同じです。  
`ref`を使う場合は代わりに`ref-napi`が対応するので別途インストールしてください。

参考サイト: <https://usagi.hatenablog.jp/entry/2020/03/18/191928>


CC BY-SA 4.0
2020-11-09T11:29:40.313
71822
2020-11-09T11:29:40.313
42632
71782
answer