Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/felixge/node-require-like
Generates require functions that act as if they were operating in a given path.
https://github.com/felixge/node-require-like
Last synced: about 2 months ago
JSON representation
Generates require functions that act as if they were operating in a given path.
- Host: GitHub
- URL: https://github.com/felixge/node-require-like
- Owner: felixge
- License: mit
- Created: 2011-06-25T13:57:38.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2021-02-12T17:07:57.000Z (almost 4 years ago)
- Last Synced: 2024-10-11T15:18:48.546Z (2 months ago)
- Language: JavaScript
- Homepage:
- Size: 112 KB
- Stars: 31
- Watchers: 5
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: Readme.md
- License: License
Awesome Lists containing this project
README
# require-like
[![Build Status](https://secure.travis-ci.org/felixge/node-require-like.png)](http://travis-ci.org/felixge/node-require-like)
Generates require functions that act as if they were operating in a given path.
## Install
``` bash
npm install require-like
```## Usage
A require function that acts as if it was executed in `'./lib/bar'`:
``` javascript
var requireLike = require('require-like');
var myRequire = requireLike(__dirname + '/lib/bar.js');var myFoo = myRequire('./foo.js');
var foo = require('./lib/foo');require('assert').strictEqual(myFoo, foo);
```## API
### requireLike(path, [uncached])
Returns a require function that acts as if it was operating in the given
`path`.Setting the `uncached` parameter to true returns a function that by-passes the
module cache.## Implementation Details
This module works by accessing some private node APIs. You shouldn't worry about
that so, since I will make sure this module does not break in the future by
either patching it, or making a patch for node that makes the needed APIs
public.## What to do with this
I use this library for dependency injection in unit tests. However, you could
also use it to create experimental require addons yourself.## License
require-like is licensed under the MIT license.