{"id":23186072,"url":"https://github.com/termosa/webpack-manager","last_synced_at":"2025-10-08T09:24:20.564Z","repository":{"id":65379327,"uuid":"48886779","full_name":"termosa/webpack-manager","owner":"termosa","description":"The interface to configure Webpack via code instead of managing dozens of hash-objects","archived":false,"fork":false,"pushed_at":"2016-08-21T09:07:33.000Z","size":13,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-12T07:02:37.839Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/termosa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-01T19:03:05.000Z","updated_at":"2022-12-14T18:46:46.000Z","dependencies_parsed_at":"2023-01-20T08:45:36.559Z","dependency_job_id":null,"html_url":"https://github.com/termosa/webpack-manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/termosa%2Fwebpack-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/termosa%2Fwebpack-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/termosa%2Fwebpack-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/termosa%2Fwebpack-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/termosa","download_url":"https://codeload.github.com/termosa/webpack-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230252844,"owners_count":18197284,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-18T10:14:23.684Z","updated_at":"2025-10-08T09:24:15.521Z","avatar_url":"https://github.com/termosa.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Webpack Manager\n========================================================================\n\n[![NPM version](https://badge.fury.io/js/webpack-manager.svg)](http://badge.fury.io/js/webpack-manager)\n[![Build Status](https://travis-ci.org/termosa/webpack-manager.svg?branch=master)](https://travis-ci.org/termosa/webpack-manager)\n[![Join the chat at https://gitter.im/termosa/webpack-manager](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/termosa/webpack-manager)\n\nSimple API to extend and generate complex Webpack configurations\n\nInstallation\n------------\n\nTo install Webpack Manager, simply:\n\n```bash\n$ npm install --save webpack-manager\n```\n\nAPI\n---\n\n**Webpack Manager** uses [Setup Manager](https://github.com/termosa/setup-manager#api) and it has all it's API as a result.\n\nIn addition it has several other methods to simplify your experience with Webpack.\nAll of them are just two kind of methods: **setters** and **getters**.\n\n#### Setters\n\n```javascript\nvar manager = require(\"webpack-manager\")();\nmanager.setter_name([ name, ] value);\nmanager.setter_name.nested_setter_name([ name, ] value);\n```\n\nThis are nested functions that sets the property with the same path\n\n```javascript\nvar config = require(\"webpack-manager\")();\n\nconfig.entry(\"./index\");\n\n// To set nested properties you can specify the key and the value\nconfig.resolve.alias(\"component\", \"./bower_components\");\n\n// or give an object as an argument\nconfig.resolve.alias({ component: \"./bower_components\" });\n\nmodule.exports = config.setup();\n\n/* Will resolve in:\n * {\n *   \"context\": \"./index\",\n *   \"resolve\": {\n *     \"alias\": { \"component\": \"./bower_components\" }\n *   }\n * }\n */\n```\n\nAnd it extends exists value:\n\n```javascript\nvar config = require(\"webpack-manager\")();\n\nvar alias = config.resolve.alias;\n\nalias(\"style\", \"./assets/styles\");\nalias({ component: \"./bower_components\" });\n\nmodule.exports = config.setup();\n\n/* Will resolve in:\n * {\n *   \"resolve\": {\n *     \"alias\": {\n *       \"style\": \"./assets/styles\",\n *       \"component\": \"./bower_components\"\n *     }\n *   }\n * }\n */\n```\n\n#### Adders\n\n```javascript\nvar manager = require(\"webpack-manager\")();\nmanager.setter_name.add(items);\n```\n\nThis functions creates an array for the property and pushes passed values in it. They are always nested to **setters** and exists only for Webpack properties that can be defined as array.\n\n```javascript\nvar webpack = require(\"webpack\");\nvar config = require(\"webpack-manager\")();\n\n// Setting array with setter method\nconfig.entry([\"./index\", \"./mobile\"]);\n\n// Setting array with adder method\nconfig.module.loaders.add({ test: /\\.css$/, loader: \"style!css\" });\nconfig.module.loaders.add([\n  { test: /\\.js$/, loader: \"babel\" },\n  { test: /\\.coffee$/, loader: \"coffee\" }\n]);\n\nmodule.exports = config.setup();\n\n/* Will resolve in:\n * {\n *   \"entry\": [ \"./index\", \"./mobile\" ],\n *   \"module\": {\n *     \"loaders\": [\n *       { \"test\": /\\.css$/, \"loader\": \"style!css\" },\n *       { \"test\": /\\.js$/, \"loader\": \"babel\" },\n *       { \"test\": /\\.coffee$/, \"loader\": \"coffee\" }\n *     ]\n *   }\n * }\n */\n```\n\n#### Methods\n\nHere is the list of all methods related to Webpack configuration:\n\n```javascript\nmanager.context([ name, ] value);\nmanager.entry([ name, ] value);\nmanager.entry.add(items);\nmanager.externals([ name, ] value);\nmanager.externals.add(items);\nmanager.target([ name, ] value);\nmanager.bail([ name, ] value);\nmanager.profile([ name, ] value);\nmanager.cache([ name, ] value);\nmanager.debug([ name, ] value);\nmanager.devtool([ name, ] value);\nmanager.node([ name, ] value);\nmanager.amd([ name, ] value);\nmanager.loader([ name, ] value);\nmanager.recordsPath([ name, ] value);\nmanager.recordsInputPath([ name, ] value);\nmanager.recordsOutputPath([ name, ] value);\nmanager.plugins([ name, ] value);\nmanager.plugins.add(items);\nmanager.watch([ name, ] value);\nmanager.watchOptions([ name, ] value);\nmanager.watchOptions.aggregateTimeout([ name, ] value);\nmanager.watchOptions.poll([ name, ] value);\n\nmanager.output([ name, ] value);\nmanager.output.path([ name, ] value);\nmanager.output.filename([ name, ] value);\nmanager.output.chunkFilename([ name, ] value);\nmanager.output.sourceMapFilename([ name, ] value);\nmanager.output.devtoolModuleFilenameTemplate([ name, ] value);\nmanager.output.devtoolFallbackModuleFilenameTemplate([ name, ] value);\nmanager.output.devtoolLineToLine([ name, ] value);\nmanager.output.hotUpdateChunkFilename([ name, ] value);\nmanager.output.hotUpdateMainFilename([ name, ] value);\nmanager.output.publicPath([ name, ] value);\nmanager.output.jsonpFunction([ name, ] value);\nmanager.output.hotUpdateFunction([ name, ] value);\nmanager.output.pathinfo([ name, ] value);\nmanager.output.library([ name, ] value);\nmanager.output.libraryTarget([ name, ] value);\nmanager.output.umdNamedDefine([ name, ] value);\nmanager.output.sourcePrefix([ name, ] value);\nmanager.output.crossOriginLoading([ name, ] value);\n\nmanager.module([ name, ] value);\nmanager.module.loaders([ name, ] value);\nmanager.module.loaders.add(items);\nmanager.module.preLoaders([ name, ] value);\nmanager.module.preLoaders.add(items);\nmanager.module.postLoaders([ name, ] value);\nmanager.module.postLoaders.add(items);\nmanager.module.noParse([ name, ] value);\nmanager.module.noParse.add(items);\nmanager.module.unknownContextRequest([ name, ] value);\nmanager.module.unknownContextRecursive([ name, ] value);\nmanager.module.unknownContextRegExp([ name, ] value);\nmanager.module.unknownContextCritical([ name, ] value);\nmanager.module.exprContextRequest([ name, ] value);\nmanager.module.exprContextRegExp([ name, ] value);\nmanager.module.exprContextRecursive([ name, ] value);\nmanager.module.exprContextCritical([ name, ] value);\nmanager.module.wrappedContextRegExp([ name, ] value);\nmanager.module.wrappedContextRecursive([ name, ] value);\nmanager.module.wrappedContextCritical([ name, ] value);\n\nmanager.resolve([ name, ] value);\nmanager.resolve.alias([ name, ] value);\nmanager.resolve.root([ name, ] value);\nmanager.resolve.modulesDirectories([ name, ] value);\nmanager.resolve.modulesDirectories.add(items);\nmanager.resolve.fallback([ name, ] value);\nmanager.resolve.fallback.add(items);\nmanager.resolve.extensions([ name, ] value);\nmanager.resolve.extensions.add(items);\nmanager.resolve.packageMains([ name, ] value);\nmanager.resolve.packageMains.add(items);\nmanager.resolve.packageAlias([ name, ] value);\nmanager.resolve.unsafeCache([ name, ] value);\nmanager.resolve.unsafeCache.add(items);\n\nmanager.resolveLoader([ name, ] value);\nmanager.resolveLoader.alias([ name, ] value);\nmanager.resolveLoader.root([ name, ] value);\nmanager.resolveLoader.modulesDirectories([ name, ] value);\nmanager.resolveLoader.modulesDirectories.add(items);\nmanager.resolveLoader.fallback([ name, ] value);\nmanager.resolveLoader.fallback.add(items);\nmanager.resolveLoader.extensions([ name, ] value);\nmanager.resolveLoader.extensions.add(items);\nmanager.resolveLoader.packageMains([ name, ] value);\nmanager.resolveLoader.packageMains.add(items);\nmanager.resolveLoader.packageAlias([ name, ] value);\nmanager.resolveLoader.unsafeCache([ name, ] value);\nmanager.resolveLoader.unsafeCache.add(items);\nmanager.resolveLoader.moduleTemplates([ name, ] value);\nmanager.resolveLoader.moduleTemplates.add(items);\n\nmanager.devServer([ name, ] value);\nmanager.devServer.host([ name, ] value);\nmanager.devServer.port([ name, ] value);\nmanager.devServer.contentBase([ name, ] value);\nmanager.devServer.hot([ name, ] value);\nmanager.devServer.historyApiFallback([ name, ] value);\nmanager.devServer.proxy([ name, ] value);\nmanager.devServer.proxy.add(items);\nmanager.devServer.quiet([ name, ] value);\nmanager.devServer.noInfo([ name, ] value);\nmanager.devServer.lazy([ name, ] value);\nmanager.devServer.filename([ name, ] value);\nmanager.devServer.watchOptions([ name, ] value);\nmanager.devServer.watchOptions.aggregateTimeout([ name, ] value);\nmanager.devServer.watchOptions.poll([ name, ] value);\nmanager.devServer.publicPath([ name, ] value);\nmanager.devServer.headers([ name, ] value);\nmanager.devServer.stats([ name, ] value);\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftermosa%2Fwebpack-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftermosa%2Fwebpack-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftermosa%2Fwebpack-manager/lists"}