Windows ARM64環境でのNode.jsとbetter-sqlite3のセットアップガイド
Windows ARM64環境でのNode.jsとbetter-sqlite3のセットアップガイド
Surface Pro XやWindows on ARMラップトップなどのWindows ARM64環境でNode.js開発環境をセットアップする際、特にbetter-sqlite3のようなネイティブモジュールを使用していて、いくつかはまったのでメモ代わりに。
前提条件
始める前に、Windows ARM64システムにScoopがインストールされていることを確認してください。Scoopは、開発ツールの管理を容易にするWindowsのコマンドラインインストーラーです。
Step 1: ARM64用Node.js 18のセットアップ
better-sqlite3をWindows ARM64で動作させるための重要なポイントは、Node.js 18を使用することです。新しいバージョンではネイティブモジュールとの互換性に問題が生じる可能性があります。
- まず、Scoopに'versions'バケットを追加します:
scoop bucket add versions
- Node.js 18.18.0を指定してインストール:
scoop install versions/nodejs18@18.18.0
Step 2: パッケージマネージャーのインストール
Node.jsをインストールした後、パッケージマネージャーをセットアップします。効率性の高いpnpmを使用します:
scoop install pnpm
Step 3: ビルドツールのセットアップ
better-sqlite3のようなネイティブモジュールには、特定のビルドツールが必要です:
- ScoopでPythonをインストール:
scoop install python
- Visual Studio Build Toolsのインストール:
- Visual Studio Build Tools 2022をダウンロード
- 「C++によるデスクトップ開発」を選択
- Windows 10/11 SDKとMSVC Build Toolsが含まれていることを確認
Step 4: node-gypのインストール
ネイティブモジュールのビルドにはnode-gypが必要です:
pnpm install -g node-gyp
Step 5: better-sqlite3のインストール
これでプロジェクトにbetter-sqlite3をインストールできます:
pnpm install better-sqlite3
よくある問題のトラブルシューティング
1. Pythonパスの問題
Pythonに関連するエラーが発生した場合、Pythonが正しく設定されていることを確認:
setx PYTHON "%USERPROFILE%\scoop\apps\python\current\python.exe"
2. Node.jsバージョンの競合
V8 APIやC++標準の競合に関するエラーが表示される場合、これは通常バージョンの互換性の問題を示しています。ARM64で特にNode.js 18.18.0を使用していることを確認:
node --version # v18.18.0が表示されるはず
3. ビルドツールの問題
ビルドエラーが発生した場合、Visual Studio Build Toolsが必要なコンポーネントすべてと共に正しくインストールされていることを確認してください。
なぜこの方法が有効か
Windows ARM64では、特にネイティブモジュールを扱う場合、バージョンの互換性に特別な注意が必要です。Node.js 18.18.0は、ARM64アーキテクチャでネイティブモジュールをビルドするための安定した基盤を提供します。一方、新しいバージョンではすべてのネイティブモジュールのビルドシナリオでARM64のサポートが完全ではない可能性があります。
まとめ
Windows ARM64でネイティブモジュールを使用するNode.js開発環境をセットアップするには、バージョンの互換性とビルドツールに慎重な注意を払う必要があります。これらの手順に従うことで、better-sqlite3やその他のネイティブモジュールで確実に動作する安定した開発環境を構築できます。
アプリケーションのテストは、ARM64環境がx64環境とは異なる動作をする可能性があるため、セットアップ後に十分に行うことを忘れないでください。
Discussion