Ready to take your JavaScript development to the next level? Meet npm Enterprise - the ultimate in enterprise JavaScript. Learn more »

context-require

1.0.4 • Public • Published

context-require
API Stability TypeScript Styled with prettier Build status Test Coverage NPM Version Downloads

Creates a new require function which runs all required modules in a context other than global. Supports custom require extensions and resolvers. Useful for things like mocking the package.json browser field without a bundler and using JSDOM (without using jsdom global) along side the native commonjs require system.

Although other uses are possible this module was built to run tests in a browser like context with out using a bundler. Because modules are cached once per context this tool also makes it easy to isolate globals and state between tests running in the same process.

Installation

npm install context-require

Example

./index.js

import createRequire from "context-require";
 
const browserRequire = createRequire({
  dir: __dirname,
  context: new JSDOM('<div>Hello World</div>').window, // This object becomes the context for any required files.
  extensions: ..., // Same as require.extensions but only used in the above context.
  resolve(from, request) {...} // Override file resolution for this context.
});
 
browserRequire("./get-document-body").innerHTML; // <div>Hello World</div>

./get-document-body.js

typeof global; // undefined
module.exports = document.body;

Contributions

  • Use npm test to build and run tests.

Please feel free to create a PR!

install

npm i context-require

Downloadsweekly downloads

42

version

1.0.4

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
  • avatar
Report a vulnerability