webpack 5でnode coreモジュールをpolyfillする方法
著者: Vitto Rivabella
このチュートリアルでは、react-app-rewired packageを使用してwebpack version 5以降でnode core modulesをpolyfillする方法、必要な依存関係のインストール方法、デフォルトのwebpack設定の上書き方法を学びます。
polyfill node core moduleエラーの原因は何か
webpack version ___の最新アップデートまで、webpack < 5はデフォルトでNodeJS polyfillsを含んでいました。現在のバージョンのwebpackはデフォルトでNodeJS polyfillsを含まなくなったため、create-react-appとwebpack > 5を使ってweb3.jsやalchemyweb3.js libraryでアプリケーションを構築している開発者に問題が発生しています。
polyfill node core moduleエラーは次のような見た目になります。
webpack 5でpolyfill node core modulesを修正する4つの簡単なステップ
create-react-appとpolyfillエラーの主な問題は、create-react-appがデフォルトでwebpack設定ファイルをnode-modules内に隠していることです。これによりファイルはビルド時に生成され、開発者はそれを変更できません。
幸い、react-app-rewiredというパッケージがあり、これを使うと開発者はwebpack設定ファイルを簡単に編集し、polyfill node core moduleエラーを修正できます。
1. react-app-rewiredをインストールする
まず、お好みのパッケージマネージャーでreach-app-rewiredパッケージをインストールします。
react-app-rewiredパッケージをyarnでインストール:
react-app-rewiredパッケージをnpmでインストール:
2. 不足している依存関係をインストールする
次に、以下の不足している依存関係をインストールします。
- crypto-browserify
- stream-browserify
- assert
- stream-http
- https-browserify
- os-browserify
- url
不足している依存関係をyarnでインストール:
yarn add process crypto-browserify stream-browserify assert stream-http https-browserify os-browserify url buffer
不足している依存関係をnpmでインストール:
3. create-react-appのwebpack設定ファイルを上書きする
プロジェクトのルートフォルダにconfig-overrides.jsという新しいファイルを作成し、次のコードを追加します。
このconfig-overrides.jsのコードスニペットは、ブラウザ上でweb3ライブラリとwallet providersをサポートするために必要な、不足している依存関係をwebpackがどのように解決するかを指定しています。
4. package.jsonを上書きしてwebpack設定を含める
package.jsonファイル内で、以下の3つのscriptsフィールドについてreact-scriptsをreact-app-rewiredスクリプトに置き換え、webpack設定を更新します。
- start
- build
- test
react-scriptsを置き換える前のpackage.jsonファイルは次のようになります。
react-scriptsをreact-app-rewiredスクリプトに置き換えた後のpackage.jsonファイルは次のようになります。
以上です。
これで、polyfill node core moduleエラーが修正され、不足していたNodeJS polyfillsがアプリに含まれるようになり、アプリはweb3.jsおよびAlchemyweb3.js libraryで動作するはずです。
Alchemy Newsletter
リリース情報をいち早く受け取る
ニュースレターに登録する
Alchemyの最新のプロダクト情報とリソースをお届けします
メールアドレスを入力すると、当社のマーケティング情報およびプロダクト最新情報の受信に同意したことになります。Alchemyが受け取った情報をプライバシー通知に従って取り扱うことに同意するものとします。購読はいつでも解除できます。
関連記事

業界最速クラスの速度と信頼性を実現するSolana RPC読み取りの設計
AlchemyはSolanaの読み取りレイテンシが最も低く、9.21ミリ秒で、次点のプロバイダーより約26%高速です。

オンチェーン取引におけるレイテンシのコスト
レイテンシのコストは、観測した状態と実行の間のギャップとして現れる。遅延がどこで発生するか、p95が重要な理由、RPCパスの評価方法を解説する。

Robinhood Chain RPC:ローンチ時点での低レイテンシーかつ信頼性の高いアクセス
AlchemyがRobinhood Chainのローンチに向けて本番用のRPCおよびWebSocketインフラをどのように準備したか、また同等の信頼性を得るためにビルダーが取るべき対応についてのエンジニアリング報告。