ライブラリのビルドに失敗することがある

Laravel MixでビルドするときにライブラリのPolyfillでエラーが発生することがある。

$ mix
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "buffer": require.resolve("buffer/") }'
        - install 'buffer'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "buffer": false }

メッセージ通りに対応することでエラーは解消できる

メッセージに従って、webpack.mix.jsに次の設定を追加する。

const mix = require('laravel-mix');
mix.webpackConfig({
    resolve: {
        fallback: {
            "buffer": require.resolve("buffer/")
        }
    }
});

Polyfillに必要なライブラリをインストールする (npm install --save-dev buffer)。

Polyfillが不要な場合は、次のように無効化する。

const mix = require('laravel-mix');
mix.webpackConfig({
    resolve: {
        fallback: {
            "buffer": false
        }
    }
});

この設定でエラーを解消できる。

根本的にはライブラリ側の依存関係に追加する必要がある

根本的には、ライブラリのコードをビルドするときに参照できないことが原因なので、ライブラリ側の依存関係に追加するとエラーを解消できる。