Skip to content
Node.js dynamic module (plugin) loader https://npmjs.org/package/ploader
JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
README.md
package.json
ploader.js

README.md

PLoader

This project is a dynamic plugin loader module for node.js

Originally written for an IRC bot

It allows a directory of plugins to be reloaded on code change, or when files are added or removed. Below is an example of usage:

var fs = require('fs');
var ploader = require('ploader');

var plugins = {};
var loader = ploader.attach('./plugins', {
    add: function(plugin, file) {
        plugins[file] = plugin;
        console.log('Loaded plugin:', file);
    },
    read: function(plugin, file) {
        // Reread callback
        plugins[file] = plugin;
        console.log('Reread plugin:', file);
    },
    remove: function(file) {
        // Remove plugin on deletion
        delete plugins[file];
        console.log('Unloaded plugin:', file);
    },
    error: function(file, e) {
        console.log('Error in plugin:', file, e);
    }
});

// Reload with watch, or manually
fs.watch('./plugins', function() {
    loader.reload();
});

Now the plugin hash can be used async and will always contain fresh plugins

Changes

The fs.watch api is ridiculously buggy which forced me to remove it from the module, opting to instead have an option to rescan the plugins manually. At least this way is slightly more reliable than watching every file.

You will now have to keep the loader closure somewhere to be able to call reload on it

Something went wrong with that request. Please try again.