{"id":19904391,"url":"https://github.com/alloc/htmelt","last_synced_at":"2026-05-14T03:32:23.441Z","repository":{"id":153086748,"uuid":"628119460","full_name":"alloc/htmelt","owner":"alloc","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-27T22:40:08.000Z","size":641,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-07T18:56:31.068Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/alloc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2023-04-15T01:02:20.000Z","updated_at":"2024-08-27T22:40:12.000Z","dependencies_parsed_at":"2024-01-24T01:23:49.524Z","dependency_job_id":"d213a31f-cc0c-479b-8c16-9fe49efb3fea","html_url":"https://github.com/alloc/htmelt","commit_stats":null,"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/alloc/htmelt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloc%2Fhtmelt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloc%2Fhtmelt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloc%2Fhtmelt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloc%2Fhtmelt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alloc","download_url":"https://codeload.github.com/alloc/htmelt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloc%2Fhtmelt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33009479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-11-12T20:28:13.205Z","updated_at":"2026-05-14T03:32:23.427Z","avatar_url":"https://github.com/alloc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# htmelt\n\nExperimental bundler for HTML, powered by ESBuild and LightningCSS. It\n\"melts\" (hence the name htmelt) any CSS and JS found in your HTML files\ninto CSS/JS bundles.\n\n\u003csub\u003eYou should probably just use Vite.\u003c/sub\u003e\n\n### Features\n\n- custom plugins with the `bundle.config.js` file\n- ESBuild integration (TypeScript + ESM syntax, code splitting, dynamic imports)\n- LightningCSS integration\n- Browserslist integration\n- HTML entry point scanning\n- JS/CSS bundling\n- `import.meta.glob` support\n- worker bundling with `new URL('./worker.ts', import.meta.url)`\n- great for [Web Extension](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions) development\n  - dev server for painless extension reloading\n  - run multiple browsers at once (or use `--webext=chromium` to only run Chrome)\n- `--watch` mode\n  - CSS hot reloading\n  - HTML rebuild on JS/HTML changes\n  - sets `NODE_ENV=development`\n- default mode\n  - HTML/JS/CSS minification\n  - sets `NODE_ENV=production`\n\n### Usage\n\nBefore running `htmelt`, you should move your HTML files into the `src/` directory and use relative paths for JS/CSS references inside your HTML files.\n\n```sh\n# Run in development mode\npnpm htmelt --watch\n\n# Run in production mode\npnpm htmelt\n```\n\nIf you want TypeScript to recognize `import.meta.glob` calls, you can add the following to your `tsconfig.json` file.\n\n```json\n{\n  \"compilerOptions\": {\n    \"lib\": [\"esnext\"],\n    \"types\": [\"htmelt/client.d.ts\"]\n  }\n}\n```\n\n### Configuration\n\nThe `bundle.config.js` file allows for customization.\n\n```js\nexport default {\n  // Browserslist targets.\n  targets: ['defaults', 'not IE 11'],\n  // Input and output directories.\n  src: './src',\n  build: './build',\n  // Tool-specific options.\n  esbuild: {...},\n  lightningcss: {...},\n  // If true, will delete the build directory before building.\n  deletePrev: false,\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falloc%2Fhtmelt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falloc%2Fhtmelt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falloc%2Fhtmelt/lists"}