{"id":27485374,"url":"https://github.com/joegasewicz/warden","last_synced_at":"2025-04-16T17:51:16.227Z","repository":{"id":286188631,"uuid":"960651538","full_name":"joegasewicz/warden","owner":"joegasewicz","description":"Static builder \u0026 bundler CLI","archived":false,"fork":false,"pushed_at":"2025-04-13T16:06:38.000Z","size":2196,"stargazers_count":3,"open_issues_count":11,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-13T16:40:35.442Z","etag":null,"topics":["build-tool","bundler","cli","dart","dartlang","js-bundle","js-bundler"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/warden","language":"Dart","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/joegasewicz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2025-04-04T20:05:14.000Z","updated_at":"2025-04-13T16:06:41.000Z","dependencies_parsed_at":"2025-04-04T21:33:08.732Z","dependency_job_id":"6f854cc6-c973-44da-9407-6ff1a08cbf2e","html_url":"https://github.com/joegasewicz/warden","commit_stats":null,"previous_names":["joegasewicz/warden"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joegasewicz%2Fwarden","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joegasewicz%2Fwarden/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joegasewicz%2Fwarden/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joegasewicz%2Fwarden/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joegasewicz","download_url":"https://codeload.github.com/joegasewicz/warden/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249261918,"owners_count":21239903,"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":["build-tool","bundler","cli","dart","dartlang","js-bundle","js-bundler"],"created_at":"2025-04-16T17:51:15.636Z","updated_at":"2025-04-16T17:51:16.216Z","avatar_url":"https://github.com/joegasewicz.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"![pub package](https://img.shields.io/pub/v/warden.svg)\n![Dart](https://img.shields.io/badge/Dart-3.7%2B-blue)\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"example/logo.png\" alt=\"Warden\" width=\"500\"/\u003e\n\u003c/div\u003e\n\n**Static builder \u0026 bundler for Dart projects**\n\nWarden is a lightweight CLI tool to watch and compile Dart and Sass files for frontend projects that don’t use Flutter, are focused on building to JavaScript for server-side rendered apps, and work with Node-installed packages. It’s ideal for projects that still want custom JS/CSS assets compiled automatically.\n\n📚 Docs: [pub.dev/packages/warden](https://pub.dev/packages/warden)\n\n---\n\n## ✨ Features\n\n- 🔁 Watches your Dart and Sass files and recompiles on change  \n- 📦 Moves specified dependencies (e.g. node_modules assets) into your build output \n- 🗂️ Moves specified asset directories (e.g. `assets/img/`) into your build output \n- 🛠️ Bundles your dependency JS files into a single `bundle.js` (optional)  \n- 🧱 Fully configurable via a `warden.yaml` file  \n- 🎯 Supports multiple tasks like compiling Dart to JS and Sass to CSS\n\n---\n\n![Screenshot](example/screen2.png)\n\n---\n\n## ⚙️ Setup\n\nCreate a `warden.yaml` in your project root:\n\n```yaml\n# The root directory of your source files\nsource_dir: examples\n\n# Where to output built files (JavaScript, CSS, etc.)\ndestination: static/\n\nmain_file: static/main.js # Main Dart-built JS file\n\n# Dependency handling (e.g. node_modules)\ndependencies:\n  - source: example/node_modules\n    bundle: true\n    files:\n      - \"poppyjs/dist/Poppy.min.js\"\n      - \"bootstrap/dist/js/bootstrap.min.js\"\n      - \"bootstrap/scss/bootstrap.scss\"\n  - source: example/another\n    bundle: true\n    files:\n      - \"lib1/dep1.js\"\n      - \"lib2/dep2.js\"\n\n# (Optional) Copies across assets folders (e.g. containing .png, .jpg) to the destination directory\nassets:\n  source: example/assets\n  directories: # The directory in source path that you want to copy across to the destination directory\n    - img\n\n# Tasks to run\ntasks:\n  frontend:\n    executable: dart\n    args: [\"compile\", \"js\", \"bin/main.dart\", \"-o\", \"../static/main.js\"]\n    src: examples # Working directory for Dart files\n\n  styles:\n    executable: dart \n    args: [\"run\", \"sass\", \"sass/index.scss:../static/index.css\"]\n    src: examples # Working directory for Sass\n    warnings: false # Optional: suppress warnings for this task (default is true)\n```\n\n### ▶️ Running\nRun Warden from your terminal in watch mode:\n```\ndart run warden --file=warden.yaml\n```\nThis will:\n\t•\tMove files listed in dependencies.files into the output directory\n\t•\tBundle them into a single bundle.js if bundle: true\n\t•\tCompile Dart to JS\n\t•\tCompile Sass to CSS\n\t•\tWatch and recompile on file changes\n\n### 📦 Installation\n\n```bash\ndart pub global activate warden\n```\nThen run from any Dart project:\n```bash\nwarden --file=warden.yaml\n```\n\n### 🧪 Example Project Structure\n```\nexamples/\n├── bin/\n│   └── main.dart\n├── lib/\n│   └── examples.dart\n├── sass/\n│   └── index.scss\n├── node_modules/\n├── warden.yaml\n```\n\n### Contributions\nPlease open an issue or reply to an existing issue requesting that you would like\nto work on it. PRs that do not fix a known bug or add new features will be closed.\n\nLicense\n\nMIT © 2025 joegasewicz","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoegasewicz%2Fwarden","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoegasewicz%2Fwarden","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoegasewicz%2Fwarden/lists"}