diff options
author | Kai WU <kaiwu2004@gmail.com> | 2024-07-19 14:21:27 +0800 |
---|---|---|
committer | Kai WU <kaiwu2004@gmail.com> | 2024-07-19 14:21:27 +0800 |
commit | 12e0a14fc106afe64d6ef0a22c025c0b4f9fb1d7 (patch) | |
tree | 684fab33bfbf9df087b0550800995827a3844ff1 /src | |
parent | d409d8893b099d484f3efbd8449a98018a28a13c (diff) | |
download | wechat_dev_tools-12e0a14fc106afe64d6ef0a22c025c0b4f9fb1d7.tar.gz wechat_dev_tools-12e0a14fc106afe64d6ef0a22c025c0b4f9fb1d7.zip |
use esbuild less
Diffstat (limited to 'src')
-rw-r--r-- | src/build.gleam | 26 | ||||
-rw-r--r-- | src/build_ffi.mjs | 40 |
2 files changed, 58 insertions, 8 deletions
diff --git a/src/build.gleam b/src/build.gleam index 0aba25d..a35e8aa 100644 --- a/src/build.gleam +++ b/src/build.gleam @@ -1,5 +1,31 @@ +// import gleam/string +import gleam/javascript/promise.{type Promise} // import bundle +// const entry = "./build/dev/javascript/wechat_dev_tools/bundle.mjs" +// const app_content = "import { app } from './bundle.mjs'; app()" +// const dist = "./dist/" +// const src = "./src/" +// +// fn page_content(p: String) -> String { +// "improt { pages, page } from './bundle.mjs'; page(pages(), \"" <> p <> "\")" +// } + +@external(javascript, "./build_ffi.mjs", "bundle_build") +pub fn bundle_build(entry f: String, outfile o: String) -> Promise(Result(Nil, String)) + +@external(javascript, "./build_ffi.mjs", "js_build") +pub fn js_build(content c: String, outfile o: String) -> Promise(Result(Nil, String)) + +@external(javascript, "./build_ffi.mjs", "json_build") +pub fn json_build(json f: String, outfile o: String) -> Promise(Result(Nil, String)) + +@external(javascript, "./build_ffi.mjs", "wxml_build") +pub fn wxml_build(wxml f: String, outfile o: String) -> Promise(Result(Nil, String)) + +@external(javascript, "./build_ffi.mjs", "less_build") +pub fn less_build(less f: String, outfile o: String) -> Promise(Result(Nil, String)) + pub fn main() { Nil } diff --git a/src/build_ffi.mjs b/src/build_ffi.mjs index d9d2671..d60f1dd 100644 --- a/src/build_ffi.mjs +++ b/src/build_ffi.mjs @@ -1,13 +1,13 @@ -import {build} from 'esbuild' +import { build } from 'esbuild' +import { lessLoader } from 'esbuild-plugin-less'; -export async function bundle_build(es, out, min) { +export async function bundle_build(entry, out) { await build({ - entryPoints: es, + entryPoints: [entry], bundle: true, - minify: min, + minify: true, format: 'esm', - outdir: out, - allowOverwrite: true, + outfile: out, }) } @@ -16,11 +16,35 @@ export async function js_build(js, out) { stdin: { contents: js, loader: 'js', - } + }, bundle: false, minify: false, format: 'esm', outfile: out, - allowOverwrite: true, + }) +} + +export async function wxml_build(wxml, out) { + await build({ + entryPoints: [wxml], + loader: 'txt', + outfile: out, + }) +} + +export async function json_build(json, out) { + await build({ + entryPoints: [json], + loader: 'json', + outfile: out, + }) +} + +export async function less_build(css, out) { + await build({ + entryPoints: [css], + plugins: [lessLoader()], + loader: 'css', + outfile: out, }) } |