{"id":19908831,"url":"https://github.com/vseventer/parcel-plugin-keep-asset-folders","last_synced_at":"2026-02-28T13:03:04.808Z","repository":{"id":57319037,"uuid":"222353190","full_name":"vseventer/parcel-plugin-keep-asset-folders","owner":"vseventer","description":"Keep assets original directory structure in Parcel's output.","archived":false,"fork":false,"pushed_at":"2023-10-02T21:35:05.000Z","size":11,"stargazers_count":3,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-03T02:38:14.279Z","etag":null,"topics":["asset","folders","parcel","parcel-plugin"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/vseventer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-18T03:09:56.000Z","updated_at":"2020-09-18T20:47:38.000Z","dependencies_parsed_at":"2022-08-25T22:42:16.068Z","dependency_job_id":null,"html_url":"https://github.com/vseventer/parcel-plugin-keep-asset-folders","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/vseventer/parcel-plugin-keep-asset-folders","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vseventer%2Fparcel-plugin-keep-asset-folders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vseventer%2Fparcel-plugin-keep-asset-folders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vseventer%2Fparcel-plugin-keep-asset-folders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vseventer%2Fparcel-plugin-keep-asset-folders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vseventer","download_url":"https://codeload.github.com/vseventer/parcel-plugin-keep-asset-folders/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vseventer%2Fparcel-plugin-keep-asset-folders/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29934963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T13:00:17.143Z","status":"ssl_error","status_checked_at":"2026-02-28T12:59:13.669Z","response_time":90,"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":["asset","folders","parcel","parcel-plugin"],"created_at":"2024-11-12T21:13:35.843Z","updated_at":"2026-02-28T13:03:04.760Z","avatar_url":"https://github.com/vseventer.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# parcel-plugin-keep-asset-folders\n\u003e Keep assets original directory structure in Parcel's output.\n\nAll static assets referenced by [Parcel][parcel] will be outputted in the root directory. This may be what you want, but for many people it is not - see [this](https://github.com/parcel-bundler/parcel/issues/872) collection of GitHub issues. This plugin patches Parcel so that assets keep their original directory structure.\n\nIn addition, Parcel does not handle extension-less files (like `CNAME`) very well: it will add a dot to the file name (`CNAME.`). This plugin also fixes this.\n\n**WARNING** This plugin modifies Parcel internals through an undocumented API. Therefore, your website may break if you are not careful when selecting which version of Parcel you are using.\n\n## Examples\nTake the project structure as outlined below.\n\n```\n- uploads\n-- 2019\n---  my-amazing-landscape.jpg\n-- logo.png\n- index.html\n- CNAME\n```\n\nTypically, the build will produce:\n\n```\n- CNAME.\n- index.html\n- my-amazing-landscape.\u003chash\u003e.jpg\n- logo.\u003chash\u003e.png\n```\n\nWith this plugin, the structure is as follows:\n```\n- uploads\n-- 2019\n--- my-amazing-landscape.\u003chash\u003e.jpg\n-- logo.\u003chash\u003e.png\n- CNAME\n- index.html\n```\n\n## Installation\nDepending on which package manager you use, either:\n* `$ npm install --save-dev parcel-plugin-keep-asset-folders`\n* `$ yarn add --dev parcel-plugin-keep-asset-folders`\n\n## Usage\nParcel automatically picks up on this plugin, and no further action is required on your part.\n\nYou can see what assets are updated by enabling debug mode: `$ DEBUG=parcel:keep-asset-folders parcel ...`.\n\n## Changelog\nSee the [Changelog](./CHANGELOG.md) for a list of changes.\n\n## License\n    The MIT License (MIT)\n\n    Copyright (c) 2019 Mark van Seventer\n\n    Permission is hereby granted, free of charge, to any person obtaining a copy of\n    this software and associated documentation files (the \"Software\"), to deal in\n    the Software without restriction, including without limitation the rights to\n    use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n    the Software, and to permit persons to whom the Software is furnished to do so,\n    subject to the following conditions:\n\n    The above copyright notice and this permission notice shall be included in all\n    copies or substantial portions of the Software.\n\n    THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n    FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n    COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n    IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n[parcel]: https://parceljs.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvseventer%2Fparcel-plugin-keep-asset-folders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvseventer%2Fparcel-plugin-keep-asset-folders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvseventer%2Fparcel-plugin-keep-asset-folders/lists"}