目前 npm (6.13.14) 用的 node-gyp (5.0.5) 在 macOS + Python 3 的環境會踩到這個 bug:
TypeError: ‘>=’ not supported between instances of ’tuple’ and ‘str’
必須自己升級 npm 底下的 node-gyp。
一般狀況下,參考 https://github.com/nodejs/node-gyp/wiki/Updating-npm’s-bundled-node-gyp 跑下面這行指令就好了
npm explore npm -g -- npm install node-gyp@latest
但如果你剛好跟我一樣:1)用 asdf-vm 、2)用 yarn、3)升級過 npm,那就得改成:
cd $(asdf where nodejs)/lib/node_modules/npm
npm install node-gyp@latest
原因如下:
- yarn 只會在 Node.js 內附的 npm 路徑底下找 node-gyp
- asdf-nodejs 會設定
NPM_CONFIG_PREFIX
,所以更新的 npm 不會蓋掉原先附的。 - 而 npm explore 處理的是更新過的 npm
總之就是個踩坑紀錄……