single-module-instance-webpack-plugin

Webpack plugin that forces require to return same instance of module regardless the place where import occurs.

Usage no npm install needed!

<script type="module">
  import singleModuleInstanceWebpackPlugin from 'https://cdn.skypack.dev/single-module-instance-webpack-plugin';
</script>

README

Single Module Instance Webpack Plugin

At runtime webpacked module can be initialized more than once which is expected behavior for Node. Nevertheless this behavior hurts a lot if you are used to RequireJS and even may introduce unexpected singleton collisions.

SingleModuleInstanceWebpackPlugin plugin along with DedupePlugin would force require to serve only one instance of each requested module.

Update webpack.config.js with following snippet:

var SingleModuleInstancePlugin = require('single-module-instance-webpack-plugin');

module.exports = {
  plugins: [
    new webpack.optimize.DedupePlugin(),
    new SingleModuleInstancePlugin()
  ]
}

TODO

  • Add tests

License

The code is available under MIT licence.