Closed4

nodeのバージョンを14系から18系へあげたらnode-gypでエラーが出た

Kazuki YonemotoKazuki Yonemoto

現象

nodeのバージョンを14.17.3 => 18.18.1へあげたら yarn install 時にエラーを吐いた。

Error: spawn node-gyp ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:284:19)
    at onErrorNT (node:internal/child_process:477:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
Emitted 'error' event on ChildProcess instance at:
    at ChildProcess._handle.onexit (node:internal/child_process:290:12)
    at onErrorNT (node:internal/child_process:477:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'spawn node-gyp',
  path: 'node-gyp',
  spawnargs: [ 'rebuild' ]
Kazuki YonemotoKazuki Yonemoto

node-gypについて ChatGPTに聞いた内容👀(そのままです)
内容は精査必要。


node-gypはNode.jsのネイティブアドオンモジュールをコンパイルするためのクロスプラットフォームコマンドラインツールです。ネイティブアドオンとは、CやC++で書かれたライブラリであり、Node.jsから直接呼び出すことができます。これにより、JavaScriptでは高速に実行できないような低レベルの操作を高速で行えます。

主な機能:

  • Python(通常はv2.7)とC/C++コンパイラ(gcc、clangなど)を使用してネイティブコードをコンパイルします。
  • Windows、macOS、Linuxなど、複数のプラットフォームで動作します。

インストール:

node-gypはNode.jsのnpm(Node Package Manager)を使ってインストールできます。

npm install -g node-gyp

必要なビルドツール:

  • Windows: Windowsの場合は、windows-build-toolsパッケージをインストールすると良いです。

    npm install --global --production windows-build-tools
    
  • macOS: macOSの場合は、Xcodeをインストールする必要があります。また、コマンドラインツールもインストールすることで、gccやmakeなどの必要なツールを利用できます。

  • Linux: Linuxの場合は、ビルドに必要なパッケージをパッケージマネージャーを使用してインストールします。Ubuntuの場合は、以下のようにします。

    sudo apt-get install -y build-essential
    

使用例:

binding.gypというGYP(Generate Your Projects)形式の設定ファイルをプロジェクトのルートディレクトリに作成します。このファイルは、コンパイルする際の設定を定義します。

その後、以下のコマンドでビルドできます。

node-gyp configure
node-gyp build

以上がnode-gypの基本的な概要と使用方法です。特定の問題に遭遇している場合、具体的な状況を教えていただければ、更に詳しいガイダンスが可能です。

このスクラップは2023/10/11にクローズされました