npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

mimic-webpack

v1.5.4

Published

Mimics a webpack config's filename extensions, aliases, and loaders inside of the current node process

Downloads

116

Readme

mimic-webpack

Mimics a webpack config's filename extensions, aliases, and loaders inside of the current node process.

You might want to mimic.install():

  • instead of bundling your specs with webpack.
  • before using linter rules like eslint-plugin-require-path-exists.
  • when performing universal rendering with code you also plan to bundle with webpack.

installation

npm install mimic-webpack

usage

In your entry file:

var Mimic = require('mimic-webpack');
new Mimic({
    webpackConfig: { // pass your webpack config here
        resolve: {
            extensions: ['.foo'],
            alias: {
                myModule: 'theirModule'
            }
        },
        module: {
            loaders: [{
                test: /\.foo$/,
                loader: 'foo-loader'
            }]
        }
    }
}).install();

myModule.foo:

// code to be processed with foo-loader

Now, anywhere in your project, you can do this:

require('theirModule');

In the above example:

  • theirModule is aliased to myModule due to resolve.alias
  • The .foo extension is inferred due to `resolve.extensions.
  • The module is processed with foo-loader because of module.loaders

api

  • Mimic.prototype.install - configures require in the current node process to behave according to the webpack config specified by options.webpackConfig passed to the constructor. Returns the current instance.
  • Mimic.prototype.uninstall - un-does what Mimic.prototype.install did. Returns the current instance.
  • Mimic.restore - restores configuration to the way it was before Mimic was required in.

known issues

Paths that were resolved using custom properties in require.extensions will continue to resolve the same even after Mimic.restore or Mimic.prototype.uninstall have been called.

myMimic.uninstall();
require.resolve('theirModule'); // still resolves to myModule.foo.

current limitations

  • Loaders must be specified in the webpack config. Loaders specified on the require path will not work
  • install and uninstall can only be run once per instance.