npm 安裝在 node-gyp 重建和 libpq 時失敗

npm 安裝在 node-gyp 重建和 libpq 時失敗
> [email protected] install /home/johnsoct/bobtail/node_modules/libpq
> node-gyp rebuild

/home/johnsoct/.nvm/versions/node/v12.22.4/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp: line 5: /usr/local/lib/node_modules/node-gyp/bin/node-gyp.js: No such file or directory

我已閱讀該錯誤,不,/usr/local/lib/ 處沒有安裝任何內容...當我全域安裝 node-gyp 時,它不會安裝在那裡。

我試過了:

  • 重新安裝 postgres (https://fedoraproject.org/wiki/PostgreSQL
  • 為 Fedora 安裝 libpq
  • 重啟512394823094次
  • 刪除node_modules並重新安裝(一遍又一遍地希望發生神奇的事情)
  • 刪除 package-lock.json 並重新安裝
  • 其他一些我早已忘記的東西

我知道的一個小提示:未安裝的軟體包npm installpg-native.不確定這會產生什麼影響,但認為它是相關的,因為libpq安裝報告中提到了這一點。

如果您好奇,這就是我的 PATH 的樣子(我最初使用 linuxbrew 安裝和卸載了 postgres): /home/johnsoct/bin:/usr/pgsql-10/bin:/usr/pgsql-10/bin:/home/linuxbrew/.linuxbrew/opt/postgresql@10/bin:/home/johnsoct/bin:/home/linuxbrew/.linuxbrew/opt/postgresql@10/bin:/home/johnsoct/.nvm/versions/node/v12.22.4/bin:/home/johnsoct/.local/bin:/home/johnsoct/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/var/lib/snapd/snap/bin

任何意見/建議都會非常有幫助......我在這裡失去了理智。

答案1

這是非常牽強的,但由於我在使用 node-gyp 建置 libpq 時遇到了同樣的問題,我想無論如何我都會分享我的修復,以防萬一。

我的錯誤輸出如下圖所示:

$ npm install
npm ERR! code 1
npm ERR! path /home/ekik/Source/home/grafana/node_modules/libpq
npm ERR! command failed
npm ERR! command sh -c -- node-gyp rebuild
npm ERR! node:internal/modules/cjs/loader:936
npm ERR!   throw err;
npm ERR!   ^
npm ERR! 
npm ERR! Error: Cannot find module 'object-assign'
npm ERR! Require stack:

當我在 Manjaro Linux 上從 NodeJS 14 升級到 16 或 18 時,這種情況就開始發生了。顯然,正在發布的 node-gyp 套件使用了大量已棄用的東西(從 npm 安裝日誌收集),顯然默認情況下(不再)安裝這些東西。

我的非常骯髒的修復很簡單:

sudo npm install --global object-assign code-point-at number-is-nan request

請注意,這會污染您的全域node_modules。

相關內容