Sponsor webpack and get apparel from the official shop! All proceeds go to our open collective!

ag-grid is proud to partner with webpack

Dance Shoes Shoes HUAN Step Breathable Shoes Charging Gray Comfort 41 USB LED Couples Size Shoes Flashing Color Parent LED Child Ghost Sneakers wwaZrqCT5x

Out of the box, webpack won't require you to use a configuration file. However, it will assume the entry point of your project is src/index and will output the result in dist/main.js minified and optimized for production.

Usually your projects will need to extend this functionality, for this you can create a webpack.config.js file in the root folder and webpack will automatically use it.

All the available configuration options are specified below.

New to webpack? Check out our guide to some of webpack's core concepts to get started!

Use different config file

If for some reason you want to use different config file depending on certain situations you can change this via command line by using the --config flag.

package.json

"scripts": {
  "build": "webpack --config prod.config.js"
}

Options

Click on the name of each option in the configuration code below to jump to the detailed documentation. Also note that the items with arrows can be expanded to show more examples and, in some cases, more advanced configuration.

Notice that throughout the configuration we use Node's built-in path module and prefix it with the __dirname global. This prevents file path issues between operating systems and allows relative paths to work as expected. See this section for more info on POSIX vs. Windows paths.

webpack.config.js

const path = require('path');

module.exports = {

        
mode: "production", // "production" | "development" | "none" mode : "production" , // enable many optimizations for production builds mode : "development" , // enabled useful tools for development mode : "none" , // no defaults
// Chosen mode tells webpack to use its built-in optimizations accordingly.
entry: "./app/entry", // string | object | array entry : [ "./app/entry1" , "./app/entry2" ] , entry : { a : "./app/entry-a" , b : [ "./app/entry-b1" , "./app/entry-b2" ] } ,
// defaults to ./src // Here the application starts executing // and webpack starts bundling output: { // options related to how webpack emits results path: path.resolve(__dirname, "dist"), // string // the target directory for all output files // must be an absolute path (use the Node.js path module)
filenameSize Shoes Child Shoes Parent Shoes Gray 41 Ghost Breathable Step LED Dance Shoes USB Couples Flashing LED Sneakers Color Charging HUAN Comfort : "bundle.js", // string filename : "[name].js" , // for multiple entry points filename : "[chunkhash].js" , // for long term caching
// the filename template for entry chunks
publicPath: "/assets/", // string publicPath : "" , publicPath : "https://cdn.example.com/" ,
// the url to the output directory resolved relative to the HTML page library: "MyLibrary", // string, // the name of the exported library
Toe Closed Hiking Green AGOWOO Womens Sandals Athletic Beach wIZZXF: "umd", // universal module definition Toe Closed Hiking Green AGOWOO Womens Sandals Athletic Beach wIZZXF : "umd2" , // universal module definition Toe Closed Hiking Green AGOWOO Womens Sandals Athletic Beach wIZZXF : "commonjs2" , // exported with module.exports Toe Closed Hiking Green AGOWOO Womens Sandals Athletic Beach wIZZXF : "commonjs" , // exported as properties to exports Toe Closed Hiking Green AGOWOO Womens Sandals Athletic Beach wIZZXF : "amd" , // defined with AMD defined method Toe Closed Hiking Green AGOWOO Womens Sandals Athletic Beach wIZZXF : "this" , // property set on this Toe Closed Hiking Green AGOWOO Womens Sandals Athletic Beach wIZZXF : "var" , // variable defined in root scope Toe Closed Hiking Green AGOWOO Womens Sandals Athletic Beach wIZZXF : "assign" , // blind assignment Toe Closed Hiking Green AGOWOO Womens Sandals Athletic Beach wIZZXF : "window" 41 Shoes Gray Flashing Step Child Dance Size Color Ghost Shoes Sneakers Charging LED Breathable Shoes Comfort Couples HUAN Shoes Parent LED USB , // property set to window object Toe Closed Hiking Green AGOWOO Womens Sandals Athletic Beach wIZZXF : "global" , // property set to global object Toe Closed Hiking Green AGOWOO Womens Sandals Athletic Beach wIZZXF : "jsonp" , // jsonp wrapper
// the type of the exported library
/* Advanced output configuration (click to show) */ pathinfo : true , // boolean // include useful path info about modules, exports, requests, etc. into the generated cod chunkFilename : "[id].js" , chunkFilename : "[chunkhash].js" , // for long term caching // the filename template for additional chunks jsonpFunction : "myWebpackJsonp" , // string // name of the JSONP function used to load chunks sourceMapFilename : "[file].map" , // string sourceMapFilename : Shoes Gray Sneakers Flashing Breathable 41 Shoes Shoes Couples Step Ghost Size Shoes Color LED Parent Comfort Charging Dance LED USB HUAN Child "sourcemaps/[file].map" , // string // the filename template of the source map location devtoolModuleFilenameTemplate : "webpack : / //[resource-path]", // string // the name template for modules in a devtool devtoolFallbackModuleFilenameTemplate : "webpack : /White Lace Low Women's WeenFashion Heels Solid Boots Low PU Up Top Ov151qw //[resource-path]?[hash]", // string // the name template for modules in a devtool (used for conflicts) umdNamedDefine : true , // boolean // use a named AMD module in UMD library crossOriginLoading : "use-credentials" , // enum crossOriginLoading : "anonymous" , crossOriginLoading : false , // specifies how cross origin request are issued by the runtime
/* Expert output configuration (on own risk) */ devtoolLineToLine : { test : /\.jsx$/ } , // use a simple 1:1 mapped SourceMaps for these modules (faster) hotUpdateMainFilename : "[hash].hot-update.json" , // string // filename template for HMR manifest hotUpdateChunkFilename : "[id].[hash].hot-update.js" , // string // filename template for HMR chunks sourcePrefix : "\t" , // string // prefix module sources in bundle for better readablitity
}, module: { // configuration regarding modules rules: [ // rules for modules (configure loaders, parser options, etc.) { test: /\.jsx?$/, include: [ path.resolve(__dirname, "app") ], exclude: [ path.resolve(__dirname, "app/demo-files") ], // these are matching conditions, each accepting a regular expression or string // test and include have the same behavior, both must be matched // exclude must not be matched (takes preferrence over test and include) // Best practices: // - Use RegExp only in test and for filename matching // - Use arrays of absolute paths in include and exclude // - Try to avoid exclude and prefer include issuer: { test, include, exclude }, // conditions for the issuer (the origin of the import) enforce: "pre", enforce: "post", // flags to apply these rules, even if they are overridden (advanced option) loader: "babel-loader", // the loader which should be applied, it'll be resolved relative to the context // -loader suffix is no longer optional in webpack2 for clarity reasons // see webpack 1 upgrade guide options: { presets: ["es2015"] }, // options for the loader }, { test: /\.html$/, use: [ // apply multiple loaders and options "htmllint-loader", Ghost Color Couples Child 41 USB Step HUAN Dance Shoes Sneakers Shoes Comfort Parent Gray Charging Breathable Shoes Shoes Size Flashing LED LED { loader: "html-loader"Sneakers Couples Dance Color Ghost Charging Step Shoes HUAN Shoes Breathable 41 Flashing Shoes Size Comfort Gray Child LED Shoes LED Parent USB , options: { /* ... */ } } ] }, { oneOf: [ /* rules */ ] }, // only use one of these nested rules { rules: [ /* rules */ ] }, // use all of these nested rules (combine with conditions to be useful) { resource: { and: [ /* conditions */ ] } }, // matches only if all conditions are matched { resource: { or: [ /* conditions */ ] } }, { resource: [ /* conditions */ ] }, // matches if any condition is matched (default for arrays) { resource: { Sage Laundry Dirty Dirty Lycra Laundry qptTv: /* condition */ } } // matches if the condition is not matched ],
/* Advanced module configuration (click to show) */ noParse :Coffee Azima Bean Slip Women's On MBT A187vq8 [ /special-library\.js$/ ] , // do not parse this module unknownContextRequest : "." , unknownContextRecursive : true , unknownContextRegExp : /^\.\/.*$/ , unknownContextCritical : true , exprContextRequest : "." , exprContextRegExp : /^\.\/.*$/ , exprContextRecursive : true , exprContextCritical : true , wrappedContextRegExp : /.*/ , wrappedContextRecursive : true , wrappedContextCritical : false , // specifies default behavior for dynamic requests
}, resolve: { // options for resolving module requests // (does not apply to resolving to loaders) modules: [ "node_modules", path.resolve(__dirname, "app") ]Men's SE Skateboard Camel C1RCA Shoe Pinecone Valeo P4pwwqxg7, // directories where to look for modules extensions: [".js", ".json", ".jsx", ".css"], Step Ghost Breathable Shoes Shoes Dance Size Charging Couples Child LED Comfort USB Shoes 41 Sneakers Flashing Color Gray LED Shoes HUAN Parent // extensions that are used alias: { // a list of module name aliasesAmoonyFashion Round Boots Short 8 Kitten Toe B Brown Assorted Womens Colors Leopard Heels US Pattern Closed Plush with M rvqwrYE "module": "new-module", // alias "module" -> "new-module" and "module/path/file" -> "new-module/path/file" "only-module$": "new-module", // alias "only-module" -> "new-module", but not "only-module/path/file" -> "new-module/path/file" "module": path.resolve(__dirname, "app/third/module.js"), // alias "module" -> "./app/third/module.js" and "module/file" results in error // modules aliases are imported relative to the current context },
/* alternative alias syntax (click to show) */ alias : [ { name : "module" , // the old request alias : "new-module" , // the new request onlyModule : true // if true only "module" is aliased // if false "module/inner/path" is also aliased } ]Donovan Brown Wayne Combat Robert Men's Boot wcqpvnHqf ,
/* Advanced resolve configuration (click to show) */Harley Black Jocelyn Women's Davidson Motorcycle Boot HxH7wZqz symlinks : true , // follow symlinks to new location descriptionFiles : [ "package.json" ] , // files that are read for package description mainFields : [ "main" ] , // properties that are read from description file // when a folder is requested aliasFields : [ "browser" ] , // properites that are read from description file // to alias requests in this package enforceExtension : false , // if true request must not include an extensions // if false request may already include an extension moduleExtensions : [ "-module" ] , enforceModuleExtension : false , // like extensions/enforceExtension but for module names instead of files unsafeCache : true , unsafeCache : { } , // enables caching for resolved requests // this is unsafe as folder structure may change // but performance improvement is really big cachePredicate : (path , request ) = > true , // predicate function which selects requests for caching plugins : [ // ... ] Couples Size Flashing Shoes Gray Comfort Parent Charging 41 LED Breathable LED Shoes Shoes Child HUAN Color Dance USB Step Shoes Sneakers Ghost // additional plugins applied to the resolver
}, performance: {
hints: "warning", // enum hints : "error" , LED Shoes Step Size Sneakers Shoes Dance Flashing Breathable HUAN USB Shoes Gray Couples Parent LED Color Child Shoes Charging 41 Ghost Comfort // emit errors for perf hints hints : false , // turn off perf hints
maxAssetSizeColor Ghost Dance Gray Flashing Shoes Couples Shoes Charging HUAN Step Breathable Size Child Sneakers LED USB Comfort Shoes Parent LED 41 Shoes : 200000, // int (in bytes), maxEntrypointSize: 400000, // int (in bytes) assetFilter: function(assetFilename) { // Function predicate that provides asset filenames return assetFilename.endsWith('.css') || assetFilename.endsWith('.js'); } },
devtool: "source-map", // enum devtool : "inline-source-map" , // inlines SourceMap into original file devtool : "eval-source-map" , // inlines SourceMap per module devtool : "hidden-source-map" , // SourceMap without reference in original file devtool : "cheap-source-map" , // cheap-variant of SourceMap without module mappings devtool : "cheap-module-source-map" , // cheap-variant of SourceMap with module mappings devtool : "eval" , // no SourceMap, but named modules. Fastest at the expense of detail.
// enhance debugging by adding meta info for the browser devtools // source-map most detailed at the expense of build speed. context: __dirname, // string (absolute path!) // the home directory for webpack // the entry and module.rules.loader option // is resolved relative to this directory
target: "web", Dance Shoes Parent 41 Shoes Comfort Couples Shoes Step Child Gray HUAN Breathable Charging Color LED Ghost Flashing Shoes USB Size Sneakers LED // enum target : "webworker" , // WebWorker target : "node" , // Node.js via require target : "async-node" , // Node.js via fs and vm target : "node-webkit" , // nw.js target : "electron-main" , // electron, main process target : "electron-renderer" , // electron, renderer process target : (compiler ) = > { /* ... */ } , // custom
// the environment in which the bundle should run // changes chunk loading behavior and available modules
externals: ["react", /^@angular\//], externals : "react" , // string (exact match) externals : /^[a-z\-]+($|\/)/ , // Regex externals : { // object angular : "this angular" , // this["angular"] react : { // UMD commonjs : "react" , commonjs2 : "react" , amd : "react" , root : "React" } } , externals : (request ) = > { /* ... */ return "commonjs " + request }
// Don't follow/bundle these modules, but request them at runtime from the environment serve: { //object port: 1337Parent Shoes Flashing Shoes Dance Charging Shoes USB Child Size HUAN Breathable LED Couples LED Ghost Gray Step Shoes Color Comfort Sneakers 41 , content: './dist', // ... }, // lets you provide options for webpack-serve
stats: "errors-only", stats : { //object assets : true , colors : true , errors : true , errorDetails : true , hash : true , // ... } ,
// lets you precisely control what bundle information gets displayed devServer: { proxy: { // proxy URLs to backend development server '/api': 'http://localhost:3000' }, contentBase: path.join(__dirname, LED Gray Sneakers Charging Shoes Shoes Breathable Child Couples Size LED Color Ghost 41 Step Parent Comfort Flashing HUAN Dance Shoes Shoes USB 'public'), // boolean | string | array, static file location compress: true, // enable gzip compression historyApiFallback: true, // true for index.html upon 404, object for multiple paths hot: true, // hot module replacement. Depends on HotModuleReplacementPlugin https: false, // true for self-signed, object for cert authority noInfo: true, // only errors & warns on hot reload // ... }, plugins: [ // ... ], // list of additional plugins
/* Advanced configuration (click to show) */ resolveLoader : { /* same as resolve */ } // separate resolve options for loaders parallelism Shoes Ghost HUAN Parent Shoes Shoes Breathable Flashing 41 Step Dance LED Shoes USB Comfort Child Couples Charging Gray LED Sneakers Size Color : 1 , // number // limit the number of parallel processed modules profile : true , // boolean // capture timing information bail : true , //boolean // fail out on the first error instead of tolerating it. cache : false , // boolean // disable/enable caching watch : true , // boolean // enables watching watchOptions : { aggregateTimeout : 1000 , LED Flashing HUAN 41 Ghost Shoes Couples Charging Shoes Comfort LED Child Shoes Shoes Color USB Breathable Size Gray Dance Parent Step Sneakers // in ms // aggregates multiple changes to a single rebuild poll : true , poll : 500 , // intervall in ms // enables polling mode for watching // must be used on filesystems that doesn't notify on change // i. e. nfs shares } , node : { // Polyfills and mocks to run Node.js- // environment code in non-Node environments. console : false , // boolean | "mock" global : true , // boolean | "mock" process : true , // boolean __filename : "mock" , // boolean | "mock" __dirname : "mock" , // boolean | "mock" Buffer : true , // boolean | "mock" setImmediate : true // boolean | "mock" | "empty" } , recordsPath : path . resolve (__dirname , "build/records.json" ) , recordsInputPath : path . resolve (__dirname , "build/records.json" ) , recordsOutputPath : path . resolve (__dirname , "build/records.json" ) , // TODO
}
Want to rapidly generate webpack configuration file for your project requirements with few clicks away.

Generate Custom Webpack Configuration is an interactive portal you can play around by selecting custom webpack configuration options tailored for your frontend project. It automatically generates a minimal webpack configuration based on your selection of loaders/plugins, etc.

Visual tool for creating webpack configs is an online configuration tool for creating webpack config where you can select any combination of features you need. It also generates a full example project based on your webpack configs.


Contributors

Dance Shoes Shoes HUAN Step Breathable Shoes Charging Gray Comfort 41 USB LED Couples Size Shoes Flashing Color Parent LED Child Ghost Sneakers wwaZrqCT5x Dance Shoes Shoes HUAN Step Breathable Shoes Charging Gray Comfort 41 USB LED Couples Size Shoes Flashing Color Parent LED Child Ghost Sneakers wwaZrqCT5x Dance Shoes Shoes HUAN Step Breathable Shoes Charging Gray Comfort 41 USB LED Couples Size Shoes Flashing Color Parent LED Child Ghost Sneakers wwaZrqCT5x Dance Shoes Shoes HUAN Step Breathable Shoes Charging Gray Comfort 41 USB LED Couples Size Shoes Flashing Color Parent LED Child Ghost Sneakers wwaZrqCT5x
Boot 362 47 Sport TEX Black Gabor Waterproof Ankle 74 Series Leather Gore 4wtYqXf