{"id":18645,"library":"pakku","title":"Pakku","description":"Pakku (v1.4.1) is a command-line web bundler and compiler that processes entire web sites: it scans for assets, links, pages, and images; versionizes filenames using Git commit IDs (cache busting); optimizes/minifies HTML, JavaScript, CSS, Less, JPEG, PNG, GIF, SVG; and supports data attributes for inline expansion and dev-only stripping. Differentiated by its holistic site-centric approach (vs module bundlers like Webpack) and zero-config philosophy. Released under MIT/BSD. Maintained on GitHub (zanona/pakku). Release cadence is irregular; latest stable v1.4.1 (2020-03-29). Requires Node >=6.","status":"active","version":"1.4.1","language":"javascript","source_language":"en","source_url":"ssh://git@github.com/zanona/pakku","tags":["javascript","automation","bundling","compression","html","package","performance","web"],"install":[{"cmd":"npm install pakku","lang":"bash","label":"npm"},{"cmd":"yarn add pakku","lang":"bash","label":"yarn"},{"cmd":"pnpm add pakku","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Pakku is a CLI tool; run via npx or global install. Always specify both input and output directories.","wrong":"pakku <input>","symbol":"CLI","correct":"npx pakku <input> <output>"},{"note":"Works on <link> for CSS and <script> for JS. Must be used in HTML files processed by Pakku.","wrong":"<script data-inline src=main.js></script> (won't inline if src is given without data-inline? Actually works.)","symbol":"data-inline","correct":"<link rel=stylesheet href=main.css data-inline> → <style>/* inlined CSS */</style>"},{"note":"Any element with data-dev attribute is entirely stripped from the production build.","wrong":"","symbol":"data-dev","correct":"<div data-dev>...content...</div> (removed in build output)"}],"quickstart":{"code":"mkdir -p my-project/src my-project/dist\ncd my-project\necho '<!DOCTYPE html><html><script>alert(\"hello\")</script></html>' > src/index.html\nnpx pakku src/index.html dist\n# Output: dist/index.html (minified) and dist/script.js?<hash> (if referenced)\necho \"Build complete. Check dist/\"","lang":"javascript","description":"Shows basic usage: create an HTML file, run pakku to build minified output with cache-busted filenames."},"warnings":[{"fix":"Ensure output directory does not contain important files or back them up.","message":"Output directory is deleted and re-created on every build.","severity":"breaking","affected_versions":">=0.1.0"},{"fix":"Upgrade Node.js to version >=6.","message":"Node <6 no longer supported as of v1.0.0.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Run pakku inside a Git repository to get proper cache-busting hashes.","message":"Asset versioning relies on Git commit ID; if not in a Git repo, version strings may be empty or broken.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Ensure input HTML is the original source, not already minified.","message":"HTML helpers like data-inline and data-dev only work on files processed by Pakku, not pre-minified or external.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Verify Node.js version with 'node --version' and npm with 'npm --version'.","message":"Node >=6 required; npm >=5.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Check that the path to index.html is relative to current working directory and file exists.","cause":"Input file path does not exist or is incorrect.","error":"ENOENT: no such file or directory, open '...'"},{"fix":"Run with npx: npx pakku ... or install globally: npm install -g pakku","cause":"Pakku is not installed globally or npx is not available.","error":"pakku: command not found"},{"fix":"Install browserify: npm install browserify --save-dev","cause":"Missing peer dependency (browserify) for JavaScript compilation.","error":"Cannot find module 'browserify'"},{"fix":"Ensure the output directory is writable; try running with elevated permissions (sudo) or change directory permissions.","cause":"Output directory or file is not writable.","error":"Error: EACCES: permission denied, unlink '...'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}