💻

Windows ARM64環境でのNode.jsとbetter-sqlite3のセットアップガイド

2024/12/29に公開

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を使用することです。新しいバージョンではネイティブモジュールとの互換性に問題が生じる可能性があります。

  1. まず、Scoopに'versions'バケットを追加します:
scoop bucket add versions
  1. Node.js 18.18.0を指定してインストール:
scoop install versions/nodejs18@18.18.0

Step 2: パッケージマネージャーのインストール

Node.jsをインストールした後、パッケージマネージャーをセットアップします。効率性の高いpnpmを使用します:

scoop install pnpm

Step 3: ビルドツールのセットアップ

better-sqlite3のようなネイティブモジュールには、特定のビルドツールが必要です:

  1. ScoopでPythonをインストール:
scoop install python
  1. 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