Skip to content

a patch for node.js which avoids loading the same module more than once

Notifications You must be signed in to change notification settings

hustxiaoc/module-unique

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

module-unique

a patch for node.js which avoids loading the same module more than once

why?

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!

How to use

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~

before using module-unique

https://gtms02.alicdn.com/tps/i2/TB1OBmVGFXXXXaZXXXXhN4IGpXX-930-98.png

after using module-unique

https://gtms03.alicdn.com/tps/i3/TB1nU9QGFXXXXb4XFXXDeGnJXXX-886-144.png

About

a patch for node.js which avoids loading the same module more than once

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published