{"id":18032377,"url":"https://github.com/dmitriz/webpack-wish-list","last_synced_at":"2026-02-11T15:01:56.266Z","repository":{"id":146747735,"uuid":"49355168","full_name":"dmitriz/webpack-wish-list","owner":"dmitriz","description":"My Webpack Wish List","archived":false,"fork":false,"pushed_at":"2019-05-25T03:50:37.000Z","size":13,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-11T22:39:25.786Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmitriz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-10T05:44:39.000Z","updated_at":"2019-05-25T03:49:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"7433d318-c8ad-4564-a6b3-b04571cc0cdc","html_url":"https://github.com/dmitriz/webpack-wish-list","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dmitriz/webpack-wish-list","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitriz%2Fwebpack-wish-list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitriz%2Fwebpack-wish-list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitriz%2Fwebpack-wish-list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitriz%2Fwebpack-wish-list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmitriz","download_url":"https://codeload.github.com/dmitriz/webpack-wish-list/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitriz%2Fwebpack-wish-list/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29336013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T14:34:07.188Z","status":"ssl_error","status_checked_at":"2026-02-11T14:34:06.809Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-10-30T10:13:13.507Z","updated_at":"2026-02-11T15:01:56.249Z","avatar_url":"https://github.com/dmitriz.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# My Webpack Wish List\nCritics and other opinions are always welcome.\n\n## Dear [Webpack](https://webpack.github.io/),\nI know you are very powerful but when people meet you first time, they may feel frustrated.\nHere is my wish list, how you could make our experience better and more fun.\n\n## On empty ~~stomach~~ directory\nRunning\n```sh\n$ webpack\n```\nproduces a long list of options that never fits in a screen. With somewhat confusing and easy to miss message:\n```sh\n...\nOutput filename not configured.\n```\n**My wishes:**\n- Keep it shorter! *Examples to follow:* `git`, `npm`.\n- Show me max 5 most useful options. Hide the rest into more advanced options. Let me see them with `webpack -h`.\n- Allow smart defaults. Let me start fast with minimum work. Default to `index.js` as `\"entry\"` and `bundle.js` as `\"output\"`. This way I don't need any config file to start! *Example to follow: `npm`*. I don't need to declare `package.json`, do I?\n- Tell me clear and in RED, what the real problem is:\n```sh\n$ \u003cin-red\u003e No webpack.config.js found. \u003c/in-red\u003e\n```\n\n\n## Dead simple and robust start\n- Be smarter and don't be hard on me. Accept more flexible config options:\n```js\noutput: 'bundle'\noutput: 'bundle.js'\noutput: {\n\tfile: 'bundle.js'\n}\n```\nYes, I know, it is `filename` not `file` that I like to see but can't you give me some pleasure to be lazy and enter `file`?\n- If you can't understand my config, fail hard and tell me! Don't silently ignore illegal declarations and let me in the dark.\n\n\n## Basic config - 1st try\nHere is my dead simple config for you:\n```js\nmodule.exports = {\n\toutput: {\n\t  \tfilename: 'bundle.js'\n\t}\n};\n```\nYour reaction:\n```\n$ webpack\nHash: 396f0bfb9d565b6f60f0\nVersion: webpack 1.12.10\nTime: 16ms\n```\n\n**My wishes:**\n- Tell we what you've done! Did you create `bundle.js`? No! Then tell me!\n- Don't tell me what might not be immediately helpful. \n\n\n## My 1st working config\nOk, so you don't want to accept my `index.js` by default, I'm giving it to you now:\n```js\nmodule.exports = {\n\tentry: 'index.js',\n\toutput: {\n\t  \tfilename: 'bundle.js'\n\t}\n};\n```\nAnd you:\n```sh\nERROR in Entry module not found: Error: Cannot resolve module 'index.js' in .../webpack-wish-list\n```\nReally? You seem to accept `bundle.js`, why not `index.js`? I know, you really want me to read [your docs](http://webpack.github.io/docs/configuration.html#entry). I wish I could be little bit lazy, but ok, I see that I should have given you:\n```sh\nmodule.exports = {\n\tentry: './index.js',\n\toutput: {\n\t  \tfilename: 'bundle.js'\n\t}\n};\n```\nand --- wow --- I made it, thank you! So here some hubmle wish list that would have saved me time:\n- Allow me to refer to `index.js` in current directory without a path.\n- Make even simpler config working:\n```js\nmodule.exports = {\n\tentry: './index.js',\n\toutput:  './bundle.js'\n};\n```\nor this:\n```js\nmodule.exports = {\n\tinput: './index.js',\n\toutput:  './bundle.js'\n};\n```\nReally, I see `output` and mechanically type `input`! Could you not accept it?\n\n\n## Trying subdirectories\nWhen I ask you to do:\n```js\nmodule.exports = {\n\tentry: './src/index.js',\n\toutput: {\n\t  \tfilename: 'bundle.js'\n\t},\n};\n```\nyou tell me:\n```sh\nERROR in Entry module not found: Error: Cannot resolve 'file' or 'directory' ./src/index.js in ...\n```\nOh no! You have just found `./index.js`, then why not `./src/index.js`? \n\n\n## Giving up and copy-pasting from the Doc\nOk, I know, you really want me to read [your Doc again](http://webpack.github.io/docs/configuration.html#context), so this time I copy-paste exactly as you tell me:\n```js\nmodule.export = {\n    context: __dirname + \"/app\",\n    entry: \"./entry\",\n    output: {\n        path: __dirname + \"/dist\",\n        filename: \"bundle.js\"\n    }\n}\n```\nAnd you ... give me your long list of options with the same familiar message at the end:\n```sh\nOutput filename not configured.\n```\nNo joke? I've just copied it form your Doc! How else you expect me to configure it???\n\n\n## Google is your friend\nYes, I know, you don't need to tell me! \nSo we google \"webpack output filename not configured\" and get... \n```sh\nAbout 7,600 results!! \n```\nGood to know we are not alone! Let's see what we have...\n\n**1st result**\nhttps://github.com/webpack/webpack/issues/1179 --- An issue from Jun 18, 2015!\nIssue is closed but last post from 3 days ago still mentions the problem ... not so good :(\n\n**2nd result**\nhttps://github.com/webpack/docs/wiki/configuration --- Your own documentation!\nWith the same \"very simple example\" as you name it...\n\nOh, here is another even simpler example without `context`, let us try it:\n```js\nmodule.export = {\n  entry: './src/app.js',\n  output: {\n    filename: 'bundle.js',\n    path: './built'\n  }\n}\n```\nAnd you give ... the same result ... really frustrating!\n\n**3rd result**\nhttp://stackoverflow.com/questions/34157313/output-filename-not-configured-error-in-webpack --- StackOverflow!\n\nOh no! A single very short answer with -1 votes! Doesn't help :(\n\n\n## Keep looking!\nLet me spare the reader from the details of our journey to the following 3 results and move to the 7th --- finally good one:\nhttp://survivejs.com/webpack_react/developing_with_webpack/\nHere we have our config --- let us try:\n```js\nconst path = require('path');\nconst HtmlwebpackPlugin = require('html-webpack-plugin');\n\nconst PATHS = {\n  app: path.join(__dirname, 'app'),\n  build: path.join(__dirname, 'build')\n};\n\nmodule.exports = {\n  // Entry accepts a path or an object of entries.\n  // The build chapter contains an example of the latter.\n  entry: PATHS.app,\n  output: {\n    path: PATHS.build,\n    filename: 'bundle.js'\n  },\n  plugins: [\n    new HtmlwebpackPlugin({\n      title: 'Kanban app'\n    })\n  ]\n};\n```\nand:\n```sh\nmodule.js:339\n    throw err;\n    ^\n\nError: Cannot find module 'html-webpack-plugin'\n```\nAt least something new here: the module is missing! So remove it everywhere:\n```js\nconst path = require('path');\n\nconst PATHS = {\n  app: path.join(__dirname, 'app'),\n  build: path.join(__dirname, 'build')\n};\n\nmodule.exports = {\n  // Entry accepts a path or an object of entries.\n  // The build chapter contains an example of the latter.\n  entry: PATHS.app,\n  output: {\n    path: PATHS.build,\n    filename: 'bundle.js'\n  },\n};\n```\nand:\n```sh\nERROR in Entry module not found: Error: Cannot resolve 'file' or 'directory' ...\n```\nOk, now you talk -- the entry module it is... let's see... the entry is \n```js\nPATH.app = path.join(__dirname, 'app')\n```\nA path! But where is the file? Ah --- the comment:\n```js\n// Entry accepts a path or an object of entries.\n```\nGreat! So we have the path and it is accepted! \nStill gives errors... but now we have this page... so let's see:\n```sh\nDirectory Structure\n...\n/app\n\tindex.js\n\tcomponent.js\n```\nand finally:\n```sh\napp/index.js\n```\nSo `index.js` is accepted by default after all! And...\n```sh\nwebpack\nHash: d67dcec5da80aac36c75\nVersion: webpack 1.12.10\nTime: 45ms\n    Asset     Size  Chunks             Chunk Names\nbundle.js  1.42 kB       0  [emitted]  main\n   [0] ./app/index.js 33 bytes {0} [built]\n```\nMagic!\n\n\n## What can I say?\nForget the Docs and read [this book](http://survivejs.com/webpack_react/), it is awesome and will save you a lot of time.\nBut could our journey have been easier? I think it could. \n\n## Final wish list for Mr. Webpack:\n- Be more gentle and forgiving, allow more flexibility.\n- Use smart default for any configuration entry missing.\n- Try your best to figure the correct files.\n- Try to be more detailed and expressive in telling us what is wrong.\n- Don't silently ignore our entries when you don't like them --- complain hard and to the pont!!!\n- Remember the **Rule of Least Surprise** and other principles form [Unix Philosophy](http://www.faqs.org/docs/artu/ch01s06.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmitriz%2Fwebpack-wish-list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmitriz%2Fwebpack-wish-list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmitriz%2Fwebpack-wish-list/lists"}