{"id":16736212,"url":"https://github.com/flexdinesh/parcel-extract-vendor-bundle","last_synced_at":"2025-06-30T10:04:45.767Z","repository":{"id":66288832,"uuid":"460633867","full_name":"flexdinesh/parcel-extract-vendor-bundle","owner":"flexdinesh","description":"Example repo to extract vendors into a separate bundle using parcel shared bundles concept","archived":false,"fork":false,"pushed_at":"2022-02-17T22:59:15.000Z","size":2055,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-30T10:04:44.953Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flexdinesh.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":"2022-02-17T22:49:57.000Z","updated_at":"2023-03-10T08:42:46.000Z","dependencies_parsed_at":"2023-05-30T16:16:43.505Z","dependency_job_id":null,"html_url":"https://github.com/flexdinesh/parcel-extract-vendor-bundle","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"flexdinesh/parcel-react-bare-minimum","purl":"pkg:github/flexdinesh/parcel-extract-vendor-bundle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flexdinesh%2Fparcel-extract-vendor-bundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flexdinesh%2Fparcel-extract-vendor-bundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flexdinesh%2Fparcel-extract-vendor-bundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flexdinesh%2Fparcel-extract-vendor-bundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flexdinesh","download_url":"https://codeload.github.com/flexdinesh/parcel-extract-vendor-bundle/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flexdinesh%2Fparcel-extract-vendor-bundle/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262753010,"owners_count":23358879,"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":[],"created_at":"2024-10-13T00:08:43.114Z","updated_at":"2025-06-30T10:04:45.752Z","avatar_url":"https://github.com/flexdinesh.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Extract vendors into separate bundle with Parcel bundler\n\nThis repo is an example to separate vendors into a separate bundle with parcel. There's no straightforward API way to do this with parcel. So we create a dummy html with dummy react root and import all the vendors we need to be extracted into a separate bundle for our app.\n\nThis works based on the concept of shared bundles in parcel.\n\nhttps://parceljs.org/features/code-splitting/#shared-bundles\n\n## Stack\n\n- Typescript\n- Parcel 2\n- React 17\n- Emotion\n- React Router\n- React Lazy Loading\n\n## Built bundles\n\n![Bundle analyzer visualization](extracted-bundles.png)\n\nThe brown part is the vendor bundle with all the packages we want to be extracted (react, react router, emotion) and the blue parts are page bundles. Page bundles get rehashed on every new build while vendor bundle remains the same between builds until one of the package version is upgraded. This helps with CDN caching of vendor bundles between builds.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflexdinesh%2Fparcel-extract-vendor-bundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflexdinesh%2Fparcel-extract-vendor-bundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflexdinesh%2Fparcel-extract-vendor-bundle/lists"}