リファレンス

ビルドエラーと直し方

ビルドが壊れたときReact2Staticが自力で判別できる原因の一覧です。以下はすべてnpm・Vite・tscが実際に出力する原文なので、手元に出たエラー行でそのまま検索できます。プロジェクトをビルダーに入れれば、どれに当たったかを直接教えてくれます。

以下の例に出てくるパッケージ名・パス・数値はあくまで例です。ビルダーはあなたのプロジェクトの実際の値を埋めます。

react-router-dom を解決できません

表示されるもの

error during build:
[vite]: Rollup failed to resolve import "react-router-dom" from "/home/project/src/App.tsx".
This is most likely unintended because it can break your application at runtime.

コードが react-router-dom を import していますが、package.json に記載がないためインストールされていません。dependencies に追加するか、その import を削除してください。AI が生成したプロジェクトで最も多い失敗です。書いたマシンには既に入っているのでローカルでは動いてしまいます。

直し方

npm install react-router-dom

package.json に build スクリプトがありません

表示されるもの

npm error Missing script: "build"
npm error
npm error To see a list of scripts, run:
npm error   npm run

こちらは npm run build を実行しますが、実行できる build スクリプトがありません。追加してください。Vite プロジェクトなら "build": "vite build" です。

直し方

{
  "scripts": {
    "build": "vite build"
  }
}

TypeScript の型チェックが通りませんでした

表示されるもの

src/components/PostCard.tsx:12:23 - error TS2339: Property 'title' does not exist on type 'Post'.

12   <h2>{post.title}</h2>
                 ~~~~~

ビルドスクリプトがバンドル前に tsc を実行し、型チェックに失敗しました。ログに出ているファイルを修正するか、ビルドスクリプトをバンドルのみに変更してください("tsc && vite build" を "vite build" に)。

直し方

{
  "scripts": {
    "build": "vite build"
  }
}

vite がインストールされていません

表示されるもの

> [email protected] build
> vite build

sh: 1: vite: not found

ビルドスクリプトが vite を呼び出していますが、package.json にないためインストールされていません。devDependencies に追加してください。

直し方

npm install -D vite

依存関係のバージョンが衝突しています

表示されるもの

npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: [email protected]
npm error Found: [email protected]

2 つのパッケージが同じ依存関係の互換性のないバージョンを要求しています。--legacy-peer-deps を付けて自動で再試行しましたが、それでも失敗しました。package.json のバージョン指定を手作業で揃える必要があります。

パッケージ @shadcn/ui-toast が存在しません

表示されるもの

npm error code E404
npm error 404 Not Found - GET https://registry.npmjs.org/@shadcn%2fui-toast
npm error 404 '@shadcn/ui-toast@^1.0.0' is not in this registry.

npm のレジストリに見つかりません。AI が実在しないパッケージ名を作ってしまうことがあり、プライベートパッケージはここからは取得できません。package.json のつづりを確認するか、どこからも import していないなら依存関係ごと削除してください。

react@^19.9.0 に一致するバージョンがありません

表示されるもの

npm error code ETARGET
npm error notarget No matching version found for react@^19.9.0.

パッケージ自体は存在しますが、指定したバージョン範囲は公開されていません。package.json のバージョン指定を緩めるか、実際に公開されているバージョンに変更してください。

ビルド成果物のフォルダが見つかりません

表示されるもの

vite v5.4.10 building for production...
✓ 41 modules transformed.
✓ built in 1.24s

ビルド自体はエラーなく終わりましたが、回収できるものがありません。こちらは dist/、build/、out/ を探します。ビルド設定の出力先ディレクトリを確認してください。

Next.js が静的ファイルを出力しませんでした

表示されるもの

▲ Next.js 14.2.5

✓ Compiled successfully
✓ Generating static pages (5/5)

Route (app)                    Size     First Load JS

next build は既定でサーバー用アプリを .next/ に出力します。next.config.js に output: "export" を追加して再ビルドすると out/ に静的ファイルが出力され、こちらで回収できます。API ルート、server actions、画像最適化などのサーバー機能はエクスポート後は使えません。

直し方

// next.config.js
module.exports = {
  output: 'export',
}

ビルド中にメモリが足りなくなりました

表示されるもの

<--- Last few GCs --->

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

ブラウザ内のビルドで使えるメモリには上限があり、このプロジェクトはそれを超えました。使っていない依存関係や大きすぎる素材を削ると収まることが多いです。難しい場合は自分のマシンでビルドしてください。

モノレポの一部のようです

表示されるもの

npm error code EUNSUPPORTEDPROTOCOL
npm error Unsupported URL Type "workspace:": workspace:*

package.json が workspace: 形式の依存関係を使っています。これはリポジトリ全体の中でしか解決できません。アプリ本体だけをアップロードし、workspace: を実際のバージョン番号に置き換えてください。

プロジェクトが別の Node バージョンを要求しています

表示されるもの

npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '[email protected]',
npm warn EBADENGINE   required: { node: '>=22.0.0' },
npm warn EBADENGINE   current: { node: 'v20.11.1' }
npm warn EBADENGINE }

いずれかの依存関係が、この環境では提供できない Node バージョンを宣言しています。engines フィールドを緩めるか、現行の Node に対応したバージョンに移行してください。

npm レジストリに接続できませんでした

表示されるもの

npm error code EAI_AGAIN
npm error network request to https://registry.npmjs.org/react failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org

ダウンロードが途中で切れました。多くの場合は一時的なものなので、そのまま再試行してください。registry.npmjs.org がブロックされている地域では VPN が必要です。

自分のプロジェクトを調べさせる

ZIPをビルダーに入れてください。ブラウザ内で実際のビルドを実行し、問題が起きたときはログ全部ではなく該当する行を指し示します。

ビルダーを開く

関連

静的サイトを公開する前に確認することReact2Staticがデプロイ前にビルド成果物へ実行する15項目の検査。露出した鍵、届かないAPI、欠けたmetaタグと、それぞれの直し方。