16
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Jest で webpack の require.context() を使えるようにする

Last updated at Posted at 2018-08-02

require.context() は、フォルダ内の全ファイルを一気に require 出来たりと非常に便利なため使う機会が多々ある。

しかし、 require.context() は webpack を使用したビルド中のみ動作する。
そのため、Jest をはじめとした他のツールで require.context() を使用すると以下のようなエラーが発生する。

TypeError: require.context is not a function

これに関して、以下の通り Issue で議論されている。

手っ取り早くこの問題を解決する方法として、こちらにも記載されているが、 babel-plugin-require-context-hook プラグインを追加する方法がある。

$ npm install --save-dev babel-plugin-require-context-hook

Jest の setupFiles に以下を追記する。

setupFiles
import registerRequireContextHook from 'babel-plugin-require-context-hook/register';
registerRequireContextHook();

.bablerc にプラグインを追加する。

.babelrc
{
  "presets": ["..."],
  "plugins": ["..."],
  "env": {
    "test": {
      "plugins": ["require-context-hook"]
    }
  }
}

これで、 Jest でも require.context() が使えるようになった。

16
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?