An (admittedly naïve) node module (un|re)loader/refreshener.
module
(String) - the module to unload
Completely unload a node module from the cache. Returns true
if the module was present in the cache, false
if not.
var minimist = require('minimist'),
freshy = require('freshy');
freshy.unload('minimist'); // true
module
(String) - the module to reload
Completely unload and reload a given module in place, leaving the new copy in the cache. Returns reloaded module.
var minimist = require('minimist'),
freshy = require('freshy');
var fresh = freshy.reload('minimist');
console.log(minimist === fresh); // false
module
(String) - the module for which to fetch a fresh instancecallback
(function, optional) - A function called while the fresh module is the one in cache
Get a fresh instance of a module without disturbing the cached copy. Returns the fresh module instance.
var minimist = require('minimist'),
freshy = require('freshy');
var fresh = freshy.freshy('minimist');
console.log(minimist === fresh); // false
var mini = require('minimist');
console.log(minimist === mini); // true
And to get a consistent require of modules that require each other, you can use the callback style:
var minimist = require('minimist'),
freshy = require('freshy');
var alsofresh;
var fresh = freshy.freshy('minimist', function (fresh) {
alsofresh = require('minimist');
console.log(fresh === alsofresh); // true
});
console.log(minimist === fresh); // false
console.log(fresh == alsofresh); // true
var mini = require('minimist');
console.log(minimist === mini); // true
This is useful for modules that alter other modules you require. dustjs-linkedin
and dustjs-helpers
is an example of this.