node.jsが古くてnpm run buildでエラー

投稿者: | 2025年2月22日

Laravelでviteを使っているのですが、npm run buildを実行したところ下記のエラーが発生。

error during build:
TypeError: crypto$2.getRandomValues is not a function
    at resolveConfig (file:///home/wwwadmin/dev1.rabona.click/www/node_modules/vite/dist/node/chunks/dep-CfG9u7Cn.js:54136:16)
    at async createBuilder (file:///home/wwwadmin/dev1.rabona.click/www/node_modules/vite/dist/node/chunks/dep-CfG9u7Cn.js:51834:18)
    at async CAC.<anonymous> (file:///home/wwwadmin/dev1.rabona.click/www/node_modules/vite/dist/node/cli.js:858:23)

調べてみると、node.jsのバージョンが古いのが原因の模様。今のバージョンを表示してみると16でした。現在、安定板は22まで出ているのでこれは古い。

次のようにnode.jsが用意しているリポジトリを参照するようにし、最新のnode.jsをインストールします。

curl -fsSL https://rpm.nodesource.com/setup_lts.x | bash -
yum install nodejs

これでnpm run buildしてもエラーが出なくなりました。