A simple module to extract html/script/style from a vuejs '.vue' file (can minimize/es2015 compliant js) ... just py2 or py3, NO nodejs !
Project description
vbuild
"Compile" your VUEJS component (*.vue) to standalone html/js/css ... python only (no need of nodejs). BTW it provides a js-minimizer (es2015 compliant code)
It's just an utility to extract HTML(template), SCRIPT and STYLE from a VUE/SFC component (*.vue). It's PURE python (py2 & py3 compatible), no nodejs ! It's fully unitested (100% !)
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.
import vbuild
sfc=vbuild.VBuild("mycompo.vue")
print( sfc.html )
print( sfc.script )
print( sfc.style )
or
import vbuild
ll=[]
ll.append( vbuild.VBuild("c1.vue") )
ll.append( vbuild.VBuild("c2.vue") )
s=sum(ll)
print( s.html )
print( s.script )
print( s.style )
By default, VBuild won't minify things. But you can change that by using vbuild.VBuild("mycompo.vue", minify=True)
, but you'll need to install css-html-js-minify.
You can use sass (using <style lang="scss"></style>
or <style lang="sass"></style>
) or less (using <style lang="less"></style>
) in your styles. But you'll need to install pyscss or lesscpy, depending on your needs.
By the way, the module provide a js-minimizer(transpiler) (to generate ES5 compliant js) (thru on the clojure online service)
js="""async function mymethod(...a) {
var f=(...a) => {let b=12}
}
"""
min=vbuild.minimize(js)
Notes:
templates
are converted to a<script type="text/x-template" id="XXX"></script>
(not converted to JS)- A Minimal component needs the
<template></template>
tag only (specs) - You can use
<style></style>
and/or<style scoped></style>
(as many as you want) - styles are minimized (remove comments and spaces)
Its 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 5 lines of python code; example:
import vbuild,glob
r=sum([vbuild.VBuild(i,minify=True) for i in glob.glob("*.vue")+glob.glob("*/*.vue")])
buf=readYourTemplate("index.tpl") # should contains a tag "<!-- HERE -->" that would be substituted
buf=buf.replace("<!-- HERE -->",str(r))
writeYourTemplate("index.html",buf)
(a real example of rendering vue/sfc components, using vbuild and the marvelous wuy)
Hope it could help ...
TODO:
- more utilities
- and docs !
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for vbuild-0.4.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2584a813192aa46600be5a661a419b2bbb42215522674a6e272ebbfde171ac92 |
|
MD5 | 916e71b398e50580f1594c057812ce97 |
|
BLAKE2b-256 | a3950809756fd2da15ec7f6c3cae554631c53399897ee75b14466c4edde4ad12 |