a patch for node.js which avoids loading the same module more than once
In a large project developed with node.Js, some modules are used frequently, let's say underscore or lodash.
module A depends on underscore
,and module B depends on it too, now they depend on the same module with same version.
So module underscore is loaded more than once , right? And that will cost a lot memory, what a waste! .So why don't
we set the cache for the same module with the same version. Well , module-unique can help you solve this!
npm install module-unique
add the code before your own code, must before or it won't work!!!
require('module-unique').init();
here is an example code
#!/usr/bin/env node
'use strict';
var unique = require('module-unique');
unique.init();
var app = require('../app'),
logger = require('logger'),
graceful = require('graceful');
app.set('port', process.env.PORT);
var server = app.listen(app.get('port'), function() {
logger.info('server listening on port ' + server.address().port);
});
graceful({
server: server,
killTimeout: 30 * 1000,
error: function(err, throwErrorCount) {
if (err.message) {
err.message +=
' (uncaughtException throw ' + throwErrorCount +
' times on pid:' + process.pid + ')';
}
logger.error(err);
}
});
memory saved about 30% above in my own project, think about how much it will save you~