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)有効化したにもかかわらず、このエラーメッセージが表示される場合は、設定方法を間違えているので対象のファイルを確認しましょう。

gulpのwatch機能を使って、監視ファイルに変更があった時にタスクを実行する
スマホやPCにプッシュ通知をしてくれる「Push7」をブログに追加する方法
HTML・CSSでWebサイト制作を行う際に必要なツール
Backlogで2段階認証を設定後、SourceTreeでアカウントエラーが発生する場合の対処法
Vue CLIでの画像パスの指定方法・配置場所まとめ
Vue.jsでtemplateタグ内にscriptやstyleタグを生成する方法|Tags with side effect are ignored
Visual Studio Codeでファイル差分の比較を行う方法
WordPressの自動バックグラウンド更新を無効にする方法とその注意点
goenvを使って、MacにGo言語をインストールする
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Orbital 2で共通の設定を使い回すためのテンプレートファイルを作成する方法
日常の入力をもっとラクにするためのATOK 単語登録周りの設定
Vue.jsで値段を表示するときに3桁ごとにカンマを入れる方法
ポモドーロテクニックの起動し忘れを防止するために仕事開始時にメッセージを表示させたり工夫をする
一瞬で日時を取得するKeyboard Maestroのタイムスタンプ機能についてまとめる
Path Finderのデュアルブラウザ機能をもっと便利に使いこなすための勘どころ
高機能なスクリーンショットアプリ「CleanShot X」
Visual Studio Codeで読み込んだCSSで設定されているclass名の入力補完をしてくれる拡張機能「HTML CSS Support」
Dashでドキュメント機能を無視して、スニペット検索だけする方法