{"id":22640841,"url":"https://github.com/groupguanfang/unbuilder","last_synced_at":"2026-01-31T05:01:03.394Z","repository":{"id":264911357,"uuid":"893770627","full_name":"Groupguanfang/unbuilder","owner":"Groupguanfang","description":"⚡️Another simple and easy to use unified build tool for JavaScript/TypeScript projects 📦 easily switch rollup/vite/swc/esbuild/tsc and more compiler","archived":false,"fork":false,"pushed_at":"2024-11-29T16:36:37.000Z","size":665,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"v1","last_synced_at":"2025-04-16T20:23:34.442Z","etag":null,"topics":["esbuild","rollup","swc","tsc","typescript","vite"],"latest_commit_sha":null,"homepage":"https://github.com/Groupguanfang/unbuilder","language":"TypeScript","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/Groupguanfang.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-25T07:20:04.000Z","updated_at":"2024-12-13T06:35:18.000Z","dependencies_parsed_at":"2025-02-03T15:51:51.485Z","dependency_job_id":"22991a9f-2c4c-4634-ba1e-fda601c5fb5e","html_url":"https://github.com/Groupguanfang/unbuilder","commit_stats":null,"previous_names":["groupguanfang/unbuilder"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Groupguanfang/unbuilder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Groupguanfang%2Funbuilder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Groupguanfang%2Funbuilder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Groupguanfang%2Funbuilder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Groupguanfang%2Funbuilder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Groupguanfang","download_url":"https://codeload.github.com/Groupguanfang/unbuilder/tar.gz/refs/heads/v1","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Groupguanfang%2Funbuilder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28929862,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T04:05:25.756Z","status":"ssl_error","status_checked_at":"2026-01-31T04:02:35.005Z","response_time":128,"last_error":"SSL_read: 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":["esbuild","rollup","swc","tsc","typescript","vite"],"created_at":"2024-12-09T04:14:19.316Z","updated_at":"2026-01-31T05:01:03.351Z","avatar_url":"https://github.com/Groupguanfang.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📦 unbuilder\n\n![npm](https://img.shields.io/npm/v/unbuilder)\n![commit-activity](https://img.shields.io/github/commit-activity/m/groupguanfang/unbuilder)\n![last-commit](https://img.shields.io/github/last-commit/groupguanfang/unbuilder)\n\nAnother `simple` and `easy to use` unified build tool for JavaScript/TypeScript projects.\n\n## ✨ Features\n\n- ⚔️ Multi-builder support:\n  - 🔪 `rollup` + `swc`/`tsc`: `stable`\n  - 🔪 `bundle-dts-generator`: `stable`\n  - 🔪 `tsup`: `stable`\n  - 🔪 `vite-lib-mode`: `stable`\n  - 🔪 `esbuild`: `stable`, but since tsup is based on esbuild, if you use this builder, you might as well use tsup (OAQ?)\n  - 🔪 `rolldown`: `experimental`, not recommended for production.\n- 🌎️ Default automatically lookup your `package.json` and `tsconfig.json` to generate:\n  - 🔪 `input/entry` options from `package.json` `main`/`exports` fields\n  - 🔪 `output` options from `package.json` `main`/`exports` fields\n  - 🔪 `external` dependencies from `package.json` `dependencies`/`peerDependencies`/`devDependencies`/`optionalDependencies` fields\n  - 🔪 `alias` paths options from `tsconfig.json`'s `compilerOptions.paths` field\n- 🚀 Support `.vue` file out of box, built-in `postcss plugin` and support for `.vue` files, good👌\n- 📻 Support `d.ts` file generation, use `rollup-plugin-dts` to generate `d.ts` files. We also can generate `.vue` file's `.d.ts` file, start writing component libraries has never been easier😉\n\n## ⬇️ Install\n\n```bash\npnpm install unbuilder\n```\n\n## ✍️ How to use\n\nWhen you create a new project, you will create a `src` directory, write your project code, and of course you will declare the `main`/`module`/`types`/`exports` fields in the `package.json`.\n\n`unbuilder` automatically recognizes the fields in your `package.json`. After specifying the `main`/`module`/`types`/`exports` fields, add the `unbuilder` field to the `package.json`, add a configuration array, and then execute `npm run build`. Cool! The files you want are transpiled.\n\n```json\n// package.json\n{\n  \"name\": \"my-project\",\n  // Specify the main/module/types/exports fields\n  \"main\": \"dist/index.cjs\",\n  \"module\": \"dist/index.mjs\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.mjs\",\n      \"require\": \"./dist/index.cjs\",\n      \"types\": \"./dist/index.d.ts\"\n    }\n  },\n  // Add scripts\n  \"scripts\": {\n    \"build\": \"unbuilder\"\n  },\n  \"unbuilder\": {\n    // Add configuration array\n    \"config\": [\n      // `rollup` is mean to use rollup to build\n      \"rollup\",\n      // `bundle-dts-generator` is mean to generate `d.ts` files\n      \"bundle-dts-generator\"\n    ]\n  }\n}\n```\n\nBy default, `rollup` builder will use `swc` to transpile the code, and `rollup-dts` builder will use `dts-bundle-generator` to generate `d.ts` files.\n\nIf you don't want to write in package.json, you can also write the configuration in the `unbuilder.config.ts` file:\n\n```ts\nimport { defineConfig } from 'unbuilder'\n\nexport default defineConfig([\n  'vite-lib-mode',\n  'bundle-dts-generator'\n])\n```\n\nYou can see how simple the configuration items are no matter where they are declared, cool!😎\n\n## Custom configuration\n\nIf the basic rollup preset does not meet your requirements, you can customize the configuration in the `unbuilder.config.ts`:\n\n```ts\nimport { defineConfig } from 'unbuilder'\n\nexport default defineConfig([\n  {\n    builder: 'vite-lib-mode',\n    // vite config\n    viteOptions: {}\n  },\n  {\n    builder: 'bundle-dts-generator',\n    // bundle-dts-generator config, please see definitions\n    buildOptions: {}\n  }\n])\n```\n\nFor more information, please refer to the tsdoc comments in the source code.\n\n## Author \u0026 License\n\n[Naily Zero](https://github.com/groupguanfang) \u0026 MIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroupguanfang%2Funbuilder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgroupguanfang%2Funbuilder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroupguanfang%2Funbuilder/lists"}