webpackでTop-Level Awaitを使用して、一番上位でもawaitを使えるようにする方法

いままで非同期処理をするときにawaitを使用したい場合、async内でしか使えませんでした。
そのため、awaitを速実行したい場合はasyncの無名関数を作ってその中で実行していました。
(async() => {
// ここでawaitを使用する
})();
// 関数外だと、awaitは使えないしかし、Top-Level Awaitはその名前の通り、一番上位に限りawaitが使えるようになります(関数内の場合はasyncを付けていないと実行できません)。
webpackを使った環境で、このTop-Level Awaitを有効化する必要が出てきたので、方法を備忘録として残しておきます。
webpack.config.jsへの記述
「webpack.config.js」ファイル内にTop-Level Awaitを有効化する記述を追加します。
module.exports = {
module: {
rules: [
{
// 省略
},
],
},
experiments: {
topLevelAwait: true,
},
plugins: [],
};対象となる記述は「experiments」内に「topLevelAwait」を追加して、trueにすると有効化されます。
experiments: {
topLevelAwait: true,
},webpack.mix.js
Laravel Mixを使っている場合は、設定ファイルが「webpack.mix.js」になります。
その場合も同じように「experiments」内に「topLevelAwait」を追加すれば反映されます。
mix.webpackConfig({
resolve: {
alias: {
'@': __dirname + '/resources/js/src'
}
},
experiments: {
topLevelAwait: true,
},
});有効化せずに使った場合のエラー表示
もし、Top-Level Awaitを有効化せずに使った場合は下記のようなエラーが表示されます。
Module parse failed: The top-level-await experiment is not enabled (set experiments.topLevelAwait: true to enabled it)有効化したにもかかわらず、このエラーメッセージが表示される場合は、設定方法を間違えているので対象のファイルを確認しましょう。

Vue.jsで値段を表示するときに3桁ごとにカンマを入れる方法
アクセス解析ツールの定番!!Googleアナリティクスの登録方法
PS Auto Sitemapを使って自分のブログのサイトマップを作成する
ファビコンや各種アイコンの作成と設定方法
gitignoreで特定ファイルをGitで無視する方法
iTerm2で起動時に左上に表示される「Tip of the Day(今日のTip)」を非表示にする方法
MAMPでローカル開発環境にWordPressをインストールする手順
Visual Studio Codeでファイル差分の比較を行う方法
手軽にコーディングの勉強ができるCodePenをもっと便利に使うための設定
Visual Studio CodeでDart Sassのコンパイルができる拡張機能「DartJS Sass Compiler and Sass Watcher」
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
【前編】もうライティングで困らない!説得型ランディングページとアフィリエイター活用で売り上げアップ【CSS Nite in Kobe】
Figmaのレイヤー周りの基本操作|グループ化やマスク、オブジェクトのロックや表示切り替えなどのレイヤーでできること
SourceTreeを開くと「’git status’ failed with code 69:’」というポップアップが出てくる場合の解決方法
Ulyssesがテーブルの作成やフォーマットを正式にサポート!
SourceTreeでマージ時に「fatal: You have not concluded your merge (MERGE_HEAD exists).」と表示される場合の対処法
Finder上のファイルの「変更日」と「作成日」を特定の日時に変更する方法
Local by Flywheelのページ遷移を軽くする設定
コーディングで「スペース」と「タブ」のどちらを使えばいいのか?
機能の差が分かりにくいDropboxの「選択型同期」と「同期の無視」の違い
BetterTouchToolを使って、Finderのファイルを「規定アプリケーションで開く」ショートカットキーを設定する方法