Code Monkey home page Code Monkey logo

custom-module-ids-webpack-plugin's Introduction

WebpackCustomModuleIdsPlugin

Absolute control over module IDs in webpack bundles. Should support webpack versions 3 and 4 at least. Feel free to make a PR to support earlier versions.

npm version

Install

npm install custom-module-ids-webpack-plugin --save-dev

or yarn equivalent

yarn add custom-module-ids-webpack-plugin --dev

Usage

Simplest use case would look like:

var CustomModuleIdsPlugin = require('custom-module-ids-webpack-plugin');
...
plugins: [
...
new CustomModuleIdsPlugin({
	idFunction: function(libIdent, module) {
		...
	}
})
...
]

but in truth there's no limit to how complex the idFunction can get.

The plugin will filter out modules with no libIdent (ignored modules, required in entry point like babel polyfills usually are, etc). If you wish to have the function called for those modules anyway, just pass callWhenMissingLibident: true option. This will pass libIdent = null, but the second argument will still contain useful info.

Options

Name Type Default Description
idFunction {Function<(libIdent: String, module: Object) -> {primtive}>} Required. Function used to generate module IDs. The return will be used as module ID and should be a valid object key. libIdent argument is generated by calling module.libIdent() and should usually be path to the module file relative to the context. The second argument is a reference to the module object in case more info than just libIdent is needed.
callWhenMissingLibident {Boolean} undefined If set to true, plugin will call idFunction for modules that have no libIdent too. The function will be called with libIdent = null.
context {String} undefined Context path relative to which libIdent will be generated. If undefined, context from webpack config will be used.

But what do we do with this absolute power?

Use it with care. The plugin can be used to solve all kinds of issues not covered by more specific module id plugins but it's also extremely easy to break your bundles by not assigning unique IDs to modules.

custom-module-ids-webpack-plugin's People

Contributors

milosrasic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.