Delete a module from node.js'
require.cache so you can freshly
require it again.
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 ( Delete Cache ) lets you delete modules from node.js
this is useful when testing your modules/projects.
When testing our modules we often need to re-require the module being tested. This makes it easy.
An easy way to delete a cached module.
Install the module from npm:
npm install decache --save-dev
Use it in your code:
// require the decache module: const decache = require('decache'); // require a module that you wrote" let 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/dwyl/decache/issues