Jakho

Jakho

Full Stack developer.
x

M1/M2 Macのnode-canvasのインストール方法の解決策

最近、私は一括でテキスト画像を生成する必要がありました。フロントエンド開発では、まずはキャンバスを使用して描画し、それを base64 に変換して保存する方法を考えました。

しかし、一括生成する場合、ブラウザの DOM を使用して保存すると、やや手間がかかります。そのため、Node を使用して処理する必要があります。そして、Node でキャンバス環境を呼び出すためには、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-canvs には実際には 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

2 番目のコマンドが完了すると、完了するためにいくつかのパスをエクスポートするように指示されます。以下に示すようにこれらの手順を実行してください。そうしないと機能しません。

node-canvas-install

完了したら、npm install node-canvasと入力し、問題がなければインストールが成功するはずです。リポジトリの issue を見たところ、Linux 環境で node-canvas を使用する場合は、特に高いバージョンの Node と組み合わせる場合は、指定のバージョンを使用する必要があるかもしれません。そうしないと、インストールが成功しない可能性があります。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。