たぶん TypeScript のときだけ。というか Babel 使ってるときだけ。

エラー

it() がエラーになっちゃった。

1
2
3
4
5
6
ReferenceError: regeneratorRuntime is not defined
 
  30 |       });
  31 |
> 32 |       it("can read to own item", async () => {
     |         ^

詳細な再現条件は確認してないけど(内部で)ジェネレーター関数が利用されているとこうなるっぽい。

解決策

ポリフィルを入れて、

1
$ npm install -D regenerator-runtime

どこかで一度だけ import します。

1
import "regenerator-runtime/runtime";

たぶん setupFilesAfterEnv 設定で指定したスクリプトに書くことになるでしょう。

関連:

babel-polyfill ?

古い情報だと babel-polyfill を入れろというのがあるんだけど、このパッケージはもう非推奨 deprecated になってるので、regenerator-runtime の方を使ってください。

🚨 As of Babel 7.4.0, this package has been deprecated in favor of directly including core-js/stable (to polyfill ECMAScript features) and regenerator-runtime/runtime (needed to use transpiled generator functions):

🚨 Babel 7.4.0 ではこのパッケージは非推奨となりました。core-js/stable(ECMAScript 機能を代替する)や regenerator-runtime/runtime(トランスパイルされたジェネレーター関数の利用に必要)を直接含めてください。

core-js/stable の方は今回の件については不要です。

おしまい

フレームワークなしの自力でやると細かいところで引っかかるものですね。FW すごい。

参考