From 698294c74e2e29d41ee08acad8a3686c7d123ccb Mon Sep 17 00:00:00 2001 From: aleidk Date: Mon, 23 Dec 2024 19:40:58 -0300 Subject: [PATCH] feat(website): add build script for frontend dependencies --- bun.lockb | Bin 78568 -> 77912 bytes packages/core/src/_utils.scss | 6 ++ packages/website/.gitignore | 6 +- packages/website/_scripts/build.ts | 66 +++++++++++++ packages/website/config.toml | 4 +- packages/website/js/index.ts | 1 + packages/website/package.json | 7 +- packages/website/sass/style.scss | 2 +- packages/website/templates/base.html | 12 +-- .../website/templates/partials/navbar.html | 93 ++++++++++++++++++ 10 files changed, 181 insertions(+), 16 deletions(-) create mode 100644 packages/website/_scripts/build.ts create mode 100644 packages/website/js/index.ts create mode 100644 packages/website/templates/partials/navbar.html diff --git a/bun.lockb b/bun.lockb index ea5450619afb835b632982944f657dd8f2340b8e..dec149cc9e0967ff2ad66545dd0c1d2187920f17 100755 GIT binary patch delta 2324 zcmeH}UrgIo6vuzR(lXXkpfH(b5*DUQ8B*F!%@AeFG|^ZRiHVXSSptcsGnyDllti&4 zCJP&5D?5oL%a+M}S+*DS7i1$-J9Tb_mK6vJ$R-YlUZcIb;`z?0~4?gTc6CXUu zr{~;r|NQRnp7T4sGgr)`ljfki$hW7X+jU{*@sRQ1se{2?J@xVGL)%x?)J)Gf>TeZK z#m<-N8YR+RU0{0P+((TkE!l|@P0P}>=7ze42KFtM$+py8#%OAnC2Q~ev5K_gQ_<&s z+P25h?r)Ti^cKTo-&>+TEsL4umW)R=%_~it%8kwCo6WM-ZZ>Xg8BGaTu+Axv0!{-n z2m=Qg1eAYK2k!a-JdUB{=q1heFff4;!1gyve+x}nu2a#z2-biFKv~da+*c?QzO~B< zaH-pX`gcIN8_hFZ1Uy3>lR4kSAEmifGuqUt&?}(rs(+b&3ht#2E|{eT{GDch4*IEc z)i`RJt99e&Etmff@P9DC&mcViM1Zk~ak%nWg&c16={-``T5Zg<#w~Kaqe@=K2Y&j% zk9K_NtJo0Fp~|E)t@BCU@buPNjNsAIZ1MDZ(Q3=E`p+eIrPW5HDDt?x8hNOWX~fiG zzEW5p=wp75D*IEVSw|)S{N#E8=YJ09W6l={$tl0ObonpA~ci z?&3>8pAE1Oa2Hdd0qYl6zX0f44d~+FKWVm{{z%u53{kPcP?R!OUP2i65x{xU!&ID$FPgAYI_U@kJx zx&b3Tsq}8>cfd~7=FzkMQVZA*XpblkLcgzU{*~N8izU-m(`pBK&P+z*&w(+Mr3qGt zj0^@GAy@|hxA6&Rl9z_wcAkV)4|+fld<>Ww@5=3=7p+0QKV*7NUKw7WTy_6&Q?}Gh z=Q)^N<0v7G?oh8+f5aA6?X{)4*b;f660iQA ZwMt!M{G}XJVe3+DTyK(t@;B=Je*r~unX~`^ delta 2877 zcmeH}ZBSHI7{~8jc5zu)mqkGkZ4D-4Q5H5G3vtx(WwP*vsC=2!)bV{%XTljx$(5Wj z6wzf)wT(?`O_L5zjdoLf85B%Z-W1dfNRk30L)N8;FhlzP?_MT8I8Gm`4^7X^?>^`J z&$;KEd(OG%IW-OXA8zX14*RX$>&C1o=*%hI;tQ!A)Y{^Wwk#>hdgEG@`*6+vIbF}r zenOUL<$1GgI$P=C^~Vfh84EKqsQD5kDO8d+J4TBMfm_XMA(@aJ5i3bSN=cw%2u*LE zu-%%seEkmZfw9K?#tM-gl5Hsqv=^o(Wwmd-y{s}jtVOYya}#8zm^UKD@O`o*O%e5$ z6eTj{DZNND8?95uNzy2^%3%<*u$muNOE#e-rB_J|N`@&fjH?N71)yR9pg#fh;1sZe zOMvzdde>j>fL~Ol*7kemtAP$&0nA_3{Fm^w-aZiduR%2E0JILt-+wQmr{G`m!~Oj{ zbO8LaUx6$JPfB!gfqn;Eux_fr|L}XxhYljW9=;EJuv+QCp6&G2${*xeZbdnLe_4uw zQxj^R;o6JzOh(|LQ>Kl(@&CqB=joyA${K&}#J{=ze{y5hrydw9>bIxL1>&{svy`}; zDuYXw?py9-+m-q!P<`s-7dxj!hR?Qdm^^IHr|IXGrboPfeR2H9pIpwI*79=x$sI@H zlG`2g8ogaJJjMH$7uI!6-x{^#`Js>8UAgCI-rz}X>UQ?GTh_bX)u+eSLD= z$)`6AOE{XiD=WYDm6^8gzWH6BZ<_w}$`I51U3G3-&bI6@*OP}$-+Yu;GH~Xa_u^x3 z-kCe&v@Ehb={S@1%GA6jGZUg{_X1UTckd)w3^B(k*Y`a$RJc8hOv|-znp-Y>t^LKs z^LAMh%g!e+XaL`e+Ooaj z0q6rKw;C-fp>hq+h_}mak8+i`DqKPCmm*LMI0cM29ip;4HOhc@13?flfj)qd#VDK= zu`b4p5MTy-@y?52ANT-pFLLj3uN?v09h}OOU>nE;D*!b$bfBEeAiyrbG^d;F2JdKT z#(52_IY$dyaD{XIS!In*G+fHGcEh-7c&RA>N5!hDjiS9OG>9Wwq$+atOA*{eZ-Mo| z&5me3v9x-q;;zmNQ^q%q3J~6ElUUmnDjP*!a}=Hjo1>zQ^86&nNJo++_1yA$?r=tN zgSC{q&G&TTKvRNP(~_dY)vx2nsY-s!7+s`#@56meyVu3&WT(UF7%@_;ZX9Jwlav$Qj%1J9ChI+ByPV)T6erIq7;Trmde8nKd5~vKux#*j zTV)Gwi_diqVY%K@7%dO5jdZMCw!z<~B(0nAYHCK>!ik+pn0T1c>4{I2AB%1%nz`!3 z+?@wc9Sgoa;LQcM(wzSCLrz(=wGQ;W?~u2c8Z@y}eQ9j)c = { + findFileUrl(url) { + if (url.startsWith("@")) { + return new URL(import.meta.resolve(url)); + } + + return null; + }, +}; + +const sassPlugin: BunPlugin = { + name: "Sass Loader", + async setup(build: PluginBuilder) { + const sass = await import("sass"); + build.onLoad({ filter: /\.scss$/ }, async ({ path }) => { + // read and compile it with the sass compiler + const result = await sass.compileAsync(path, { + importers: [nodeModuleImporter], + }); + + return { + loader: "css", + contents: result.css, + }; + }); + }, +}; + +const assets: BuildConfig[] = [ + { + entrypoints: ["./sass/style.scss"], + outdir: `${outdir}/css`, + naming: "[name].css", + plugins: [sassPlugin], + minify: true, + + // On by default in Bun v1.2+ + html: true, + experimentalCss: true, + }, + + { + entrypoints: ["./js/index.ts"], + outdir: `${outdir}/js`, + target: "browser", + splitting: true, + minify: true, + }, +]; + +await Promise.all( + assets.map(async (item) => { + const result = await Bun.build(item); + + if (!result.success) { + throw new AggregateError(result.logs, "Build failed"); + } + }), +); + +console.log(`${Bun.color("#a6da95", "ansi")}Assets succesfully build!\x1b[0m`); diff --git a/packages/website/config.toml b/packages/website/config.toml index be866ed..aa8c799 100644 --- a/packages/website/config.toml +++ b/packages/website/config.toml @@ -3,8 +3,8 @@ base_url = "https://mini-strap.alecodes.page" output_dir = "dist" -# Whether to automatically compile all Sass files in the sass directory -compile_sass = true +# Managed by bun +compile_sass = false # Whether to build a search index to be used later on by a JavaScript library build_search_index = true diff --git a/packages/website/js/index.ts b/packages/website/js/index.ts new file mode 100644 index 0000000..a50e789 --- /dev/null +++ b/packages/website/js/index.ts @@ -0,0 +1 @@ +console.log("hello world!"); diff --git a/packages/website/package.json b/packages/website/package.json index 58a3ead..8e34106 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -6,13 +6,14 @@ "dev": "zola serve --port 3000 --fast" }, "dependencies": { - "@mini-strap/core": "workspace:*" + "@mini-strap/core": "workspace:*", + "@mini-strap/components": "workspace:*" }, "devDependencies": { - "@types/bun": "latest" + "@types/bun": "latest", + "sass": "^1.83.0" }, "peerDependencies": { "typescript": "^5.0.0" } } - diff --git a/packages/website/sass/style.scss b/packages/website/sass/style.scss index e903ac2..4643c8a 100644 --- a/packages/website/sass/style.scss +++ b/packages/website/sass/style.scss @@ -1,4 +1,4 @@ -@import "@mini-strap/core/style.scss"; +@use "@mini-strap/core"; html { // background-color: red; diff --git a/packages/website/templates/base.html b/packages/website/templates/base.html index 4a921e4..782fc79 100644 --- a/packages/website/templates/base.html +++ b/packages/website/templates/base.html @@ -1,22 +1,20 @@ - + - - - - {title} + alecodes.page - + +
- + {% include "partials/navbar.html" %}
{% block content %}{% endblock %} diff --git a/packages/website/templates/partials/navbar.html b/packages/website/templates/partials/navbar.html new file mode 100644 index 0000000..77adf91 --- /dev/null +++ b/packages/website/templates/partials/navbar.html @@ -0,0 +1,93 @@ + + + + +