😱

vite を build したら `Maximum call stack size exceeded` エラーが出た

2023/04/02に公開

config で!?と目を疑ったログはこちら。

failed to load config from /var/www/html/vite.config.js
error during build:
RangeError: Maximum call stack size exceeded
    at String.replace (<anonymous>)
    at removeColors (node:internal/util:80:10)
    at isBelowBreakLength (node:internal/util/inspect:2014:22)
    at reduceToSingleString (node:internal/util/inspect:2059:13)
    at formatRaw (node:internal/util/inspect:1090:15)
    at formatValue (node:internal/util/inspect:841:10)
    at inspect (node:internal/util/inspect:365:10)
    at formatWithOptionsInternal (node:internal/util/inspect:2292:40)
    at formatWithOptions (node:internal/util/inspect:2154:10)
    at console.value (node:internal/console/constructor:339:14)

vite.config.js の中身は以下

import { defineConfig, loadEnv } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig(({ mode }) => {
    const env = loadEnv(mode, process.cwd())
    return {
        server: {
            host: true,
            hmr: {
                host: env.VITE_HOST,
            },
        },
        plugins: [
            laravel({
                input: [
                    'resources/sass/app.scss',
                    'resources/js/app.js',
                ],
                refresh: true,
                watch: {
                  usePolling: true,
                },
            }),
        ],
        resolve: {
            alias: {
                '@': '/resources/js',
                '$': 'jQuery',
            },
        },
    }
})

原因

.env とサーバの環境変数が問題だった。

APP_HOST="${APP_HOST}"
VITE_HOST="${APP_HOST}"

上記のように、 .env 内でサーバの環境変数が使われるようにしていたのだが、それが設定されていなかった。
サーバに環境変数を設定したら治った。

Discussion