65 lines
2.0 KiB
Markdown
65 lines
2.0 KiB
Markdown
|
# decache
|
|||
|
|
|||
|
[![Build Status](https://travis-ci.org/dwyl/decache.svg)](https://travis-ci.org/dwyl/decache)
|
|||
|
[![codecov.io](https://codecov.io/github/dwyl/decache/coverage.svg?branch=master)](https://codecov.io/github/dwyl/decache?branch=master)
|
|||
|
[![Code Climate](https://codeclimate.com/github/dwyl/decache/badges/gpa.svg)](https://codeclimate.com/github/dwyl/decache)
|
|||
|
[![Dependency Status](https://david-dm.org/dwyl/decache.svg)](https://david-dm.org/dwyl/decache)
|
|||
|
[![devDependency Status](https://david-dm.org/dwyl/decache/dev-status.svg)](https://david-dm.org/dwyl/decache#info=devDependencies)
|
|||
|
|
|||
|
In node.js when you `require()` a module, node stores a cached version of the
|
|||
|
module, so that all subsequent calls to `require()` do not have to reload
|
|||
|
the module from the filesystem.
|
|||
|
|
|||
|
`decache` ( _**De**lete **Cache**_ ) lets you delete modules from node.js `require()` cache
|
|||
|
this is useful when _**testing**_ your modules/projects.
|
|||
|
|
|||
|
## Why?
|
|||
|
|
|||
|
When testing our modules we often need to re-require the module being tested.
|
|||
|
This makes it easy.
|
|||
|
|
|||
|
## What?
|
|||
|
|
|||
|
An easy way to delete a cached module.
|
|||
|
|
|||
|
## How? (_usage_)
|
|||
|
|
|||
|
### install
|
|||
|
|
|||
|
Install the module from npm:
|
|||
|
|
|||
|
```sh
|
|||
|
npm install decache --save-dev
|
|||
|
```
|
|||
|
|
|||
|
### Use it in your code:
|
|||
|
|
|||
|
```js
|
|||
|
// require the decache module:
|
|||
|
var decache = require('decache');
|
|||
|
|
|||
|
// require a module that you wrote"
|
|||
|
var mymod = require('./mymodule.js');
|
|||
|
|
|||
|
// use your module the way you need to:
|
|||
|
console.log(mymod.count()); // 0 (the initial state for our counter is zero)
|
|||
|
console.log(mymod.incrementRunCount()); // 1
|
|||
|
|
|||
|
// delete the cached module:
|
|||
|
decache('./mymodule.js');
|
|||
|
|
|||
|
//
|
|||
|
mymod = require('./mymodule.js'); // fresh start
|
|||
|
console.log(mymod.count()); // 0 (back to initial state ... zero)
|
|||
|
```
|
|||
|
|
|||
|
Modules other than `.js`, like for example, `.jsx`, are supported as well.
|
|||
|
|
|||
|
Note that native modules with the `.node` extension are ignored from decaching because
|
|||
|
they behave unexpectedly when decached.
|
|||
|
|
|||
|
If you have any questions or need more examples, please create a GitHub issue:
|
|||
|
https://github.com/nelsonic/decache/issues
|
|||
|
|
|||
|
***Thanks***!
|