{"id":13579998,"url":"https://github.com/manatlan/vbuild","last_synced_at":"2025-10-08T18:12:09.201Z","repository":{"id":62587095,"uuid":"149789290","full_name":"manatlan/vbuild","owner":"manatlan","description":"\"Compile\" your VueJS components (sfc/*.vue) to standalone html/js/css ... python only (no need of nodejs). Support python components too !","archived":false,"fork":false,"pushed_at":"2023-08-03T17:21:30.000Z","size":224,"stargazers_count":251,"open_issues_count":6,"forks_count":13,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-28T07:03:59.799Z","etag":null,"topics":["closure","compiler","less","python2","python3","sass","sfc","vue","vuejs","webpack","webpacker"],"latest_commit_sha":null,"homepage":"","language":"Python","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/manatlan.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"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}},"created_at":"2018-09-21T16:24:52.000Z","updated_at":"2024-11-25T04:55:57.000Z","dependencies_parsed_at":"2024-01-02T23:39:54.113Z","dependency_job_id":"e4e009af-6f27-4f7e-b014-6c38382b8457","html_url":"https://github.com/manatlan/vbuild","commit_stats":{"total_commits":105,"total_committers":1,"mean_commits":105.0,"dds":0.0,"last_synced_commit":"6b266fd20b57162d72eea5cbab403b0daaff19d8"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manatlan%2Fvbuild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manatlan%2Fvbuild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manatlan%2Fvbuild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manatlan%2Fvbuild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manatlan","download_url":"https://codeload.github.com/manatlan/vbuild/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247140003,"owners_count":20890338,"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":["closure","compiler","less","python2","python3","sass","sfc","vue","vuejs","webpack","webpacker"],"created_at":"2024-08-01T15:01:45.777Z","updated_at":"2025-10-08T18:12:04.165Z","avatar_url":"https://github.com/manatlan.png","language":"Python","readme":"# vbuild\n\n[![Test](https://github.com/manatlan/vbuild/actions/workflows/on_commit_do_all_unittests.yml/badge.svg)](https://github.com/manatlan/vbuild/actions/workflows/on_commit_do_all_unittests.yml)\n\n\u003ca href=\"https://pypi.org/project/vbuild/\"\u003e\n    \u003cimg src=\"https://badge.fury.io/py/vbuild.svg?x\" alt=\"Package version\"\u003e\n\u003c/a\u003e\n\n\"Compile\" your [VueJS](https://vuejs.org/) (vuejs2 only) components (*.vue) to standalone html/js/css ... python only, **no need of nodejs**. And you can use [python components](https://github.com/manatlan/vbuild/blob/master/doc/PyComponent.md) with **vbuild**, in your vue/sfc files !!!\n\nIt's just an utility to [generate](https://github.com/manatlan/vbuild/blob/master/doc/generate.md) HTML(template), SCRIPT and STYLE from a [VUE/SFC component]((https://fr.vuejs.org/v2/guide/single-file-components.html)) (*.vue). It won't replace webpack/nodejs/vue-cli, it fills the _\"Sometimes you have to work with the tools you have, not the ones you want.\"_ gap.\n\n[DEMO](https://manatlan.alwaysdata.net/vbuild/)\n\n[Available on pypi](https://pypi.org/project/vbuild/)\n\n[Changelog](https://github.com/manatlan/vbuild/releases) (old [Changelog](https://github.com/manatlan/vbuild/blob/master/changelog.md) (before 0.8.2))\n\n## Features\n\n * **NO node-js stack**, only pure python3\n * Ability to use [python components](https://github.com/manatlan/vbuild/blob/master/doc/PyComponent.md)\n * Components can be styled with [SASS or LESS ccs-pre-processors](https://github.com/manatlan/vbuild/blob/master/doc/CssPreProcess.md) !\n * Provide a [JS-minifier (ES5 compliant JS, via closure)](https://github.com/manatlan/vbuild/blob/master/doc/minimize.md)\n * Ability to [post process stuff](https://github.com/manatlan/vbuild/blob/master/doc/PostProcess.md), with your own processors\n * Respect [VueJs specs](https://vue-loader.vuejs.org/spec.html) (at least one template tag, many style (scoped or not) tags)\n * `templates` are converted to a `\u003cscript type=\"text/x-template\" id=\"XXX\"\u003e\u003c/script\u003e` (not converted to JS)\n * Unittested (coverage 100%)\n * no import/from !\n\n\n```python\nimport vbuild\n\nc=vbuild.render(\"mycompo.vue\")\n#c=vbuild.render(\"vues/*.vue\")\n#c=vbuild.render( \"c1.vue\", \"c2.vue\" )\n#c=vbuild.render( \"c1.vue\", \"vues/*.vue\" )\n\nprint( c.html )\nprint( c.script )\nprint( c.style )\n\n#or\n\nprint( c ) # all stuff in html tags\n\n```\n\n## Main Goal\n\nIts main purpose is to let you use components (.vue files) in your vuejs app, without a full nodejs stack. It's up to you to create your generator, to extract the things, and create your \"index.html\" file. It's a 4 lines of python code; example:\n\n```python\nimport vbuild\nbuf=readYourTemplate(\"index.tpl\") # should contains a tag \"\u003c!-- HERE --\u003e\" that would be substituted\nbuf=buf.replace(\"\u003c!-- HERE --\u003e\",str( vbuild.render( \"vues/*.vue\" ) ) )\nwriteYourTemplate(\"index.html\",buf)\n```\n\n([a real example](https://github.com/manatlan/wuy/tree/master/examples/vueapp) of rendering vue/sfc components, using **vbuild** and the marvelous [wuy](https://github.com/manatlan/wuy))\n\n\n## Vue/sfc component compatibility\n\nAll classical JS vue/sfc components are compatibles. But now, you can use [python component](https://github.com/manatlan/vbuild/blob/master/doc/PyComponent.md) too.\n\nHere is, side by side, the same component (in js, and in python):\n\n\u003cimage src=\"https://raw.githubusercontent.com/manatlan/vbuild/master/doc/vs.png\"/\u003e\n\n## To use the full features of vbuild\n\nIf you want to use the full features, you'll need to install the optionnal's libs.\n\n```\nsudo pip install pyscss lesscpy closure\n```\n\nAll theses libs works with py3, and you could use the [css-pre-processors SASS and LESS](https://github.com/manatlan/vbuild/blob/master/doc/CssPreProcess.md), and [closure to minify js](https://github.com/manatlan/vbuild/blob/master/doc/minimize.md).\n\n## TODO\n\n * more utilities\n * more rock solid version\n * and docs !\n * add pyscss lesscpy closure to pip setup.py (optionnal's modules)\n * see the [TODO list for python components too](https://github.com/manatlan/vbuild/blob/master/doc/PyComponent.md)\n\n","funding_links":[],"categories":["Python","Components \u0026 Libraries","Integrations","Integrations [🔝](#readme)"],"sub_categories":["Integrations","Payment"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanatlan%2Fvbuild","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanatlan%2Fvbuild","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanatlan%2Fvbuild/lists"}