環境
- Windows 11
- Node - v18.17.1
- node-canvas - v2.11.2
- node-gyp - v9.4.0
- Visual Stadio Build Tool 2022
- Python - v3.10.11, v2.7.18
1. (Option) Node.js のLTSをインストール
Node.js | https://nodejs.org/ja/download
※本稿ではNode.js
-v18.17.1
を使用
情報
比較的新しいバージョンのNode.js
であればwindows-build-tools
はNode.js
に同梱される為、インストール不要らしい
- 2023/8/23 現在 パブリックアーカイブされた模様
注意
FNM
+PowerShell環境だと(公式のsetup手順どおりにsetupしていれば)PowerShell起動時にfnm env
が実行され環境変数のパスにWindows書式・UNIX書式が混在する事になる。その為node-gyp rebuild
でビルド時に PowerShell 側でパスが解決できないエラーになる。
解決策としてFNM
の管理外にNode.jsをインストールする必要がある
2. node-canvas
のインストール
Windowsでのインストール手順
canvas
| npm
2.1. node-gyp
をインストール
Windowsでのインストール手順
2.1.1. Python 3.x をインストール
2.1.2. Visual Studio Build Tools 2022
をインストール
Visual C++ ビルド環境をインストール
2.1.3. Python 2.7
をインストール
上記のページから Python 2.7.x
を探すか、以下のリンクからDLしてインストール
Python 2.7.18 | Pyton(TM)
注意
-
Python 2.7
のデフォルトのインストールディレクトリC:\Python2.7
から変更(C:\Program Files\Python2.7
等)した場合はメモしておく。後で使います。 -
Python 3.x
とPython 2.7
の両方を使うので、それぞれのバージョンを同居させる必要があります
2.1.4. Python 2.7
をnpm
で使うPython
に設定する
npm config set python python2.7
情報
ほぼエラると思うので、ここを参考に%USERPROFILE%\.npmrc
に直接書く
python is not a valid npm option | StackOverflow
# Python 2.7 をインストールしたディレクトリを記述
python=C:\Python27
2.1.5. Visual Stadio Build Tools 2017
をnpm
で使うmsvs
に設定する
npm config set msvs_version 2017
msvs_version=2017
- 無い場合はインストール(どこから?)
2.1.6. node-gyp
をグローバルインストール
npm install -g node-gyp
2.2. GTK 2
の導入
2.2.1. GTK 2
のバイナリをDL
32bit OS用、64bit OS用のいづれか
- WIN34 - gtk+-bundle_2.24.10-20120208_win32.zip | download.gnome.org
- WIN64 - gtk+-bundle_2.22.1-20101229_win64.zip | download.gnome.org
2.2.2. DLしたバイナリを指定のディレクトリ(C:\GTK
)に展開
こんな感じ
C:\GKT
- \bin
- \build
- \etc
- \include
- \lib
- \man
- \manifest
- \share
- \src
- gtk+-bundle_2.22.1-20101229_win64.README.txt
2.3. libjpeg-turbo
の導入
2.3.1. libjpeg-turbo
バイナリのDL
32bit OS用、64bit OS用のいづれか
- WIN32 - libjpeg-turbo-2.0.0-vc.exe | sourceforge.net
- WIN64 - libjpeg-turbo-2.0.0-vc64.exe | sourceforge.net
2.3.2. DLした.exe
をインストール
.exe
をWクリック
- WIN32 -
C:\libjpeg-turbo
- WIN64 -
C:\libjpeg-turbo64
3. Project にnode-canvas
をインストール
3.1. プロジェクトディレクトリに移動する
cd <project directory>
3.2. node-canvas
をインストール
# 本稿では test 目的でのインストールの為、--save-dev オプションを付与
npm install --save-dev --build-from-source canvas
3.3. (Option)node-canvas
をリビルド
node-canvas
は基本、各OS(macOS Linux Windows)のバイナリがインストールされるが、プロセッサーが合わない場合、正しく動作しない(らしい)。
その場合、システム上でビルドをし直す必要がある。
3.3.1. (Option)Node.js
-v18.17.1
のヘッダーをインストールする
以下の様なエラーがでる場合、必要
FetchError: request to https://nodejs.org/download/release/v18.17.1/node-v18.17.1-headers.tar.gz failed, reason: connect ECONNREFUSED 2606:4700:10::6814:172e:443
- 参考 StackOverflow
- DLリンク
3.3.2. node-canvas
がインストールされたnode_modules
ディレクトリに移動する
cd node_modules/canvas
3.3.3. node-gyp
でリビルド
# <user>はOSのログインユーザー名
$ node-gyp rebuild --verbose --nodedir="C:\Users\<user>\.node-gyp\18.17.1"
ext. プロジェクトのNode.js
バージョンを固定する
-
FNM
の利用が前提 -
Node.js - v18
でビルドしたcanvasはNode.js - v18
でしか動作しない
$ fnm use 18
$ fnm current
v18.17.1
$ node -v > .node-version
了