🔧

【Next.js】エラー"@next/swc-linux-x64-gnu"の対処法【初心者】

2023/03/09に公開

このエラーについて

このエラーは「Next.jsを実行している環境に"swc-linux-x64-gnu」が対応していないことを表しています。

実行環境

環境 バージョン
Docker 3.8
Node.js 18.13.0-alpine3.16
Next.js 13

SWCとは

SWCとは、Next.js 12からBabelに代わってデフォルトで使用されるようになったWebプラットフォーム(機能)です。

対応している環境に制限がありますが、Babelに比べて圧倒的な動作スピードを誇ります。

対処法

SWCでなくBabelを使用することによってこのエラーを解消することが可能です。

先ずはプロジェクトのルートディレクトリに.babelrcを追加し、以下の記述を行います。

.babelrc
{
    "presets": ["next/babel"],
}

その後、next.config.jsに「swcを無効にする」と記述します。

next.config.js
/** @type {import('next').NextConfig} */

const NextConfig = {
    reactStrictMode: true,  // コンポーネントを2回レンダリングする
    swcMinify: false,  // SWCを無効化
}

module.exports = NextConfig

これでSWCに代わってBabelを使用することができます。

編集後記

このエラーは私がDocker環境でNext.jsを実行していた際に起きたエラーで、Redditなどを参考に様々な方法を試したが、どれもうまく動かなかった為に最終手段として使用しました。

この手段は安定して実行することができますが、SWCに比べて格段に実行速度が遅くなってしまうので、ほかの手段も試してうまく動かなかったときの手段として使用していただけると幸いです。

Discussion