{"id":26775511,"url":"https://github.com/packmule/packmule","last_synced_at":"2025-04-16T00:57:55.118Z","repository":{"id":34206903,"uuid":"168560411","full_name":"packmule/packmule","owner":"packmule","description":"Opinionated configuration generator for webpack.","archived":false,"fork":false,"pushed_at":"2023-04-01T11:28:04.000Z","size":2519,"stargazers_count":5,"open_issues_count":11,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-16T00:57:47.178Z","etag":null,"topics":["bundler","configuration","generator","webpack"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/packmule.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2019-01-31T16:50:26.000Z","updated_at":"2023-03-11T12:29:08.000Z","dependencies_parsed_at":"2024-06-19T17:10:14.617Z","dependency_job_id":"34609b2a-2ce7-4e90-a527-4d2ae24af9e7","html_url":"https://github.com/packmule/packmule","commit_stats":{"total_commits":565,"total_committers":8,"mean_commits":70.625,"dds":0.5398230088495575,"last_synced_commit":"899ae8dd5e1aa142da41cbe93c025a69981d3e22"},"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/packmule%2Fpackmule","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/packmule%2Fpackmule/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/packmule%2Fpackmule/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/packmule%2Fpackmule/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/packmule","download_url":"https://codeload.github.com/packmule/packmule/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249178216,"owners_count":21225349,"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":["bundler","configuration","generator","webpack"],"created_at":"2025-03-29T03:18:38.209Z","updated_at":"2025-04-16T00:57:55.102Z","avatar_url":"https://github.com/packmule.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# packmule\n\n`packmule` is an opinionated, plugin-based configuration generator for [`webpack`](https://webpack.js.org/).\n\n---\n\n* 🏇 Small and simple API.\n* 🧰 Plugins for many use cases.\n* 🔧 Build your own plugin for custom use cases.\n* ⚡ Optimized webpack settings for HTTP/2.\n\n```typescript\nimport Packmule from '@packmule/core';\nimport EntryPack from '@packmule/entry-pack';\nimport OutputPack from '@packmule/output-pack';\nimport TypeScriptPack from '@packmule/typescript-pack';\n\nconst packmule = new Packmule('production');\n\npackmule.add(new EntryPack('main.ts'));\npackmule.add(new OutputPack('public/', '/'));\npackmule.add(new TypeScriptPack());\n\nreturn packmule.generate();\n```\n\n## Setup\n\n**Current Release**\n\nRun the following command within your project directory to install the\n[default edition](packages/edition-default/) of `packmule` which includes\nthe [`@packmule/core`](packages/core/) package and most relevant packs.\n\n```bash\nnpm install --save-dev @packmule/default\n```\n\nThe [complete edition](packages/edition-complete/) can be installed to have all `packs` available.\n\n```bash\nnpm install --save-dev @packmule/complete\n```\n\nAlternatively, to have full control over the installed packages, it's\npossible to install the [`core`](packages/core/) package and individual packs.\n\n```bash\nnpm install --save-dev @packmule/core @packmule/entry-pack @packmule/output-pack @packmule/typescript-pack\n```\n\n**Nightly Build**\n\nAll `@packmule` packages have a nightly build tagged on the `npm` registry.\n\n```bash\nnpm install --save-dev @packmule/\u003cpackage\u003e@nightly\n```\n\n## Editions\n\n`packmule` provides `editions` which install a pre-defined\nset of `packmule` packages including various `packs` and utilities.\n\nIt's recommended to install `packmule` packages individually\nbut editions provide an easy way to get started quickly.\n\n* **[Default Edition](packages/edition-default/)** - A basic set of `packs` and utilities.\n* **[Complete Edition](packages/edition-complete/)** - The full set of `packs` and utilities.\n\n## Plugins\n\n`packmule` plugins are called `packs` and each one handles generation of a specific `webpack` configuration part.\nSeveral `packs` expose API methods to include or exclude files from processing using\n[`file globbing`](https://en.wikipedia.org/wiki/Glob_(programming)) or\n[`regular expression`](https://en.wikipedia.org/wiki/Regular_expression) patterns.\n\n* **[Alias Pack](packages/pack-alias/)** - Configure webpack aliases.\n* **[Analyzer Pack](packages/pack-analyzer/)** - Analyze the bundle size.\n* **[Assets Pack](packages/pack-assets/)** - Create an asset map file for use with hashed file names.\n* **[Cache Pack](packages/pack-cache/)** - Configure the webpack cache.\n* **[Chunk Pack](packages/pack-chunk/)** - Wrap the webpack chunk-plugin.\n* **[Compression Pack](packages/pack-compression/)** - Generate `gzip` and `brotli` versions of configured assets.\n* **[Copy Pack](packages/pack-copy/)** - Copy files.\n* **[Entry Pack](packages/pack-entry/)** - Define entrypoints for webpack.\n* **[Environment Pack](packages/pack-environment/)** - Populate `process.env` via `.env` files and at runtime.\n* **[Hot Module Replacement Pack](packages/pack-hmr/)** - Include the `hot module replacement` plugin for development.\n* **[Image Optimization Pack](packages/pack-image-optimization/)** - Optimize images using `imagemin`.\n* **[JavaScript Pack](packages/pack-javascript/)** - Process JS including Babel support.\n* **[Less Pack](packages/pack-less/)** - Compile `less` to `CSS`.\n* **[Log Pack](packages/pack-log/)** - Configure console logging.\n* **[Manifest Pack](packages/pack-manifest/)** - Generate a web app manifest.\n* **[Name Pack](packages/pack-name/)** - Configure the Webpack configuration name.\n* **[Notification Pack](packages/pack-notification/)** - Enable desktop notifications for development builds.\n* **[Output Pack](packages/pack-output/)** - Define the output options for webpack.\n* **[Performance Pack](packages/pack-performance/)** - Configure entry and asset sizes.\n* **[Raw Pack](packages/pack-raw/)** - Merge raw webpack configuration directly.\n* **[Runtime Pack](packages/pack-runtime/)** - Configure the webpack runtime chunk.\n* **[Sass Pack](packages/pack-sass/)** - Compile and optimize Sass/SCSS to CSS including PostCSS processing.\n* **[Service Worker Pack](packages/pack-service-worker/)** - Generate a simple service worker using `workbox`.\n* **[Sprite Pack](packages/pack-sprite/)** - Generate a SVG-based vector-sprite.\n* **[Svelte Pack](packages/pack-svelte/)** - Handle `svelte` single-file-component files.\n* **[Target Pack](packages/pack-target/)** - Set the target environment for the bundle.\n* **[TypeScript Pack](packages/pack-typescript/)** - Compile TS to JS including Babel support.\n* **[Vue Pack](packages/pack-vue/)** - Handle `vue` single-file-component files.\n* **[Watch Pack](packages/pack-watch/)** - Handle file watching.\n\n## Utilities\n\n* **[Development Server](packages/utility-server/)** - Simple development server via `browser-sync`.\n\n## License\n\n[MIT license](LICENSE)\n\n---\n\n[\u003cimg src=\"https://avatars.githubusercontent.com/u/4364197?s=64\"\u003e](https://www.pixelart.at/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpackmule%2Fpackmule","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpackmule%2Fpackmule","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpackmule%2Fpackmule/lists"}