From 9ad89997a533744695b380b315f1f70293bb30c4 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sun, 04 Jun 2023 16:35:45 +0000
Subject: [PATCH] multi-core builds

---
 quartz/bootstrap-cli.mjs |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/quartz/bootstrap.mjs b/quartz/bootstrap-cli.mjs
similarity index 89%
rename from quartz/bootstrap.mjs
rename to quartz/bootstrap-cli.mjs
index 16a0c69..be6270e 100755
--- a/quartz/bootstrap.mjs
+++ b/quartz/bootstrap-cli.mjs
@@ -5,10 +5,10 @@
 import { hideBin } from 'yargs/helpers'
 import esbuild from 'esbuild'
 import chalk from 'chalk'
-import requireFromString from 'require-from-string'
 import { sassPlugin } from 'esbuild-sass-plugin'
 
-const fp = "./quartz.config.ts"
+const cacheFile = "./.quartz-cache/transpiled-build.mjs"
+const fp = "./quartz/build.ts"
 const { version } = JSON.parse(readFileSync("./package.json").toString())
 
 export const BuildArgv = {
@@ -52,16 +52,16 @@
   .version(version)
   .usage('$0 <cmd> [args]')
   .command('build', 'Build Quartz into a bundle of static HTML files', BuildArgv, async (argv) => {
-    const out = await esbuild.build({
+    await esbuild.build({
       entryPoints: [fp],
-      write: false,
+      outfile: path.join("quartz", cacheFile),
       bundle: true,
       keepNames: true,
       platform: "node",
-      format: "cjs",
+      format: "esm",
       jsx: "automatic",
       jsxImportSource: "preact",
-      external: ["@napi-rs/simple-git", "shiki"],
+      packages: "external",
       plugins: [
         sassPlugin({
           type: 'css-text'
@@ -97,8 +97,7 @@
       process.exit(1)
     })
 
-    const mod = out.outputFiles[0].text
-    const init = requireFromString(mod, fp).default
+    const { default: init } = await import(cacheFile)
     init(argv, version)
   })
   .showHelpOnFail(false)

--
Gitblit v1.10.0