Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

require-context-arr

robbiemu8MIT1.1.4

Require with an expression. This version supports an array of directories (which yes, is dangerous, because of collisions)

node, require, context, modules, webpack

readme

require-context v1.1.4

changes: this version supports a directory or an array of directories (which, yes, is dangerous because of collisions. but useful for submodules in some contexts)

Installation

Using npm:

$ npm i -g npm
$ npm i --save require-context

In Node.js:

// Load globally into all modules.
require('require-context/register')

// Load locally as a function.
var requireContext = require('require-context');

Usage

It allows you to pass in a directory to search, a flag indicating whether subdirectories should be searched too, and a regular expression to match files against.

The syntax is as follows:

require.context(directory, useSubdirectories = false, regExp = /^\.\//)

Examples

require.context("./test", false, /\.test\.js$/);
// a context with files from the test directory that can be required with a request endings with `.test.js`.
require.context("../", true, /\.stories\.js$/);
// a context with all files in the parent folder and descending folders ending with `.stories.js`.

Context API

A context module exports a (require) function that takes one argument: the request.

The exported function has 3 properties: resolve, keys, id.

  • resolve is a function and returns the module id of the parsed request.
  • keys is a function that returns an array of all possible requests that the context module can handle.

This can be useful if you want to require all files in a directory or matching a pattern, Example:

function importAll (r) {
  r.keys().forEach(r);
}

importAll(require.context('../components/', true, /\.js$/));

Why require-context?

  • Take the hassle out of requiring groups of modules
  • Write cross-platform code between webpack and node