Jakho

Jakho

Full Stack developer.
x

M1/M2 Mac 安裝 node-canvas 的解決方法

最近我有一個需求是需要批量生成一批文字圖片,作為前端開發首先想到的當然是通過 canvas 去進行繪製並且保存為 base64 轉圖片。

但如果要批量生產,通過瀏覽器 DOM 來做,在保存的時候會相對比較麻煩一些,這就需要用到 Node 去進行處理,而在 Node 中想調用 canvas 環境就必須安裝 node-canvas 模塊依賴,而我在使用 M2 Mac 設備安裝 node-canvas 的時候會報錯,它會提示:

嘗試從中獲取不存在的二進制文件https://github.com/Automattic/node-canvas/releases/download/v2.9.1/canvas-v2.9.1-node-v93-darwin-unknown-arm64.tar.gz(與您的相同)。不幸的是,發布頁面上沒有該版本的跡象 https://github.com/Automattic/node-canvas/releases

也就是說官方的 node-canvas 實際上沒有關於 arm64 的 node-canvas 源提供,需要另尋解決辦法。

安裝 node-canvas 的話,node-gyp 肯定也必不可少,首先我們得先安裝好 node-gyp(如已安裝過可跳過)以免在後續安裝依賴的時候還是會等待時間過長或者報錯。

安裝並且配置 node-gyp#

打開終端窗口並輸入以下命令:

export CXXFLAGS="-stdlib=libc++"

此命令將 C++ 標準庫設置為 libc++,這是 node-gyp 在 M1 Mac 上工作所必需的。

在終端窗口輸入以下命令:

npm install -g node-gyp

此命令會全局安裝 node-gyp 軟件包,等待安裝完成即可。

安裝 node-canvas#

首先需要先安裝 homebrew 工具,請將這些命令準確複製並粘貼到終端中分步執行:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
arch -arm64 brew install pkg-config cairo pango libpng jpeg giflib librsvg

第二個完成後,它會告訴你導出幾個路徑來完成,如下所示。請執行這些操作,否則將不起作用。

node-canvas-install

執行完成後,重新輸入npm install node-canvas,如無意外就能安裝成功啦,看了下倉庫的 issue,貌似在 linux 環境下,使用 node-canvas 更加麻煩,特別是配合高版本 node 下,可能得使用指定的版本,否則無法安裝成功。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。