webpack-provide-global-plugin
Version:
A webpack plugin to provide installed packages as named global variables
28 lines (23 loc) • 684 B
JavaScript
var webpack = require('webpack');
function setPluginOptions (pluginOptions) {
const provideMap = {};
const globalPackages = Object.keys(pluginOptions);
globalPackages.forEach(function(package) {
const globalName = pluginOptions[package];
provideMap[globalName] = 'imports-loader?this=>global!exports-loader?global.' + globalName + '!' + package;
});
return {
provideMap
};
}
class WebpackProvideGlobalPlugin {
constructor (pluginOptions = {}) {
Object.assign(this, setPluginOptions(pluginOptions))
}
apply (compiler) {
compiler.apply(
new webpack.ProvidePlugin(this.provideMap)
);
}
}
module.exports = WebpackProvideGlobalPlugin;