quick build concurrency

This commit is contained in:
2025-08-20 14:34:03 +00:00
parent d90b2729cb
commit b93c35052d
2 changed files with 15 additions and 11 deletions

View File

@@ -1,12 +1,13 @@
import os from "node:os";
import sitemap from "@astrojs/sitemap"; import sitemap from "@astrojs/sitemap";
import svelte from "@astrojs/svelte"; import svelte from "@astrojs/svelte";
import tailwind from "@astrojs/tailwind"; import tailwind from "@astrojs/tailwind";
import { pluginCollapsibleSections } from "@expressive-code/plugin-collapsible-sections"; import { pluginCollapsibleSections } from "@expressive-code/plugin-collapsible-sections";
import { pluginLineNumbers } from "@expressive-code/plugin-line-numbers"; import { pluginLineNumbers } from "@expressive-code/plugin-line-numbers";
import swup from "@swup/astro"; import swup from "@swup/astro";
import { defineConfig } from "astro/config";
import expressiveCode from "astro-expressive-code"; import expressiveCode from "astro-expressive-code";
import icon from "astro-icon"; import icon from "astro-icon";
import { defineConfig } from "astro/config";
import rehypeAutolinkHeadings from "rehype-autolink-headings"; import rehypeAutolinkHeadings from "rehype-autolink-headings";
import rehypeComponents from "rehype-components"; /* Render the custom directive content */ import rehypeComponents from "rehype-components"; /* Render the custom directive content */
import rehypeKatex from "rehype-katex"; import rehypeKatex from "rehype-katex";
@@ -16,14 +17,13 @@ import remarkGithubAdmonitionsToDirectives from "remark-github-admonitions-to-di
import remarkMath from "remark-math"; import remarkMath from "remark-math";
import remarkSectionize from "remark-sectionize"; import remarkSectionize from "remark-sectionize";
import { expressiveCodeConfig } from "./src/config.ts"; import { expressiveCodeConfig } from "./src/config.ts";
import { pluginCustomCopyButton } from "./src/plugins/expressive-code/custom-copy-button.js";
import { pluginLanguageBadge } from "./src/plugins/expressive-code/language-badge.ts"; import { pluginLanguageBadge } from "./src/plugins/expressive-code/language-badge.ts";
import { AdmonitionComponent } from "./src/plugins/rehype-component-admonition.mjs"; import { AdmonitionComponent } from "./src/plugins/rehype-component-admonition.mjs";
import { GithubCardComponent } from "./src/plugins/rehype-component-github-card.mjs"; import { GithubCardComponent } from "./src/plugins/rehype-component-github-card.mjs";
import { parseDirectiveNode } from "./src/plugins/remark-directive-rehype.js"; import { parseDirectiveNode } from "./src/plugins/remark-directive-rehype.js";
import { remarkExcerpt } from "./src/plugins/remark-excerpt.js"; import { remarkExcerpt } from "./src/plugins/remark-excerpt.js";
import { remarkReadingTime } from "./src/plugins/remark-reading-time.mjs"; import { remarkReadingTime } from "./src/plugins/remark-reading-time.mjs";
import { pluginCustomCopyButton } from "./src/plugins/expressive-code/custom-copy-button.js";
// https://astro.build/config // https://astro.build/config
export default defineConfig({ export default defineConfig({
site: "https://fuwari.vercel.app/", site: "https://fuwari.vercel.app/",
@@ -61,12 +61,12 @@ export default defineConfig({
pluginCollapsibleSections(), pluginCollapsibleSections(),
pluginLineNumbers(), pluginLineNumbers(),
pluginLanguageBadge(), pluginLanguageBadge(),
pluginCustomCopyButton() pluginCustomCopyButton(),
], ],
defaultProps: { defaultProps: {
wrap: true, wrap: true,
overridesByLang: { overridesByLang: {
'shellsession': { shellsession: {
showLineNumbers: false, showLineNumbers: false,
}, },
}, },
@@ -76,7 +76,8 @@ export default defineConfig({
borderRadius: "0.75rem", borderRadius: "0.75rem",
borderColor: "none", borderColor: "none",
codeFontSize: "0.875rem", codeFontSize: "0.875rem",
codeFontFamily: "'JetBrains Mono Variable', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace", codeFontFamily:
"'JetBrains Mono Variable', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
codeLineHeight: "1.5rem", codeLineHeight: "1.5rem",
frames: { frames: {
editorBackground: "var(--codeblock-bg)", editorBackground: "var(--codeblock-bg)",
@@ -87,19 +88,19 @@ export default defineConfig({
editorActiveTabIndicatorBottomColor: "var(--primary)", editorActiveTabIndicatorBottomColor: "var(--primary)",
editorActiveTabIndicatorTopColor: "none", editorActiveTabIndicatorTopColor: "none",
editorTabBarBorderBottomColor: "var(--codeblock-topbar-bg)", editorTabBarBorderBottomColor: "var(--codeblock-topbar-bg)",
terminalTitlebarBorderBottomColor: "none" terminalTitlebarBorderBottomColor: "none",
}, },
textMarkers: { textMarkers: {
delHue: 0, delHue: 0,
insHue: 180, insHue: 180,
markHue: 250 markHue: 250,
} },
}, },
frames: { frames: {
showCopyToClipboardButton: false, showCopyToClipboardButton: false,
} },
}), }),
svelte(), svelte(),
sitemap(), sitemap(),
], ],
markdown: { markdown: {
@@ -155,6 +156,7 @@ export default defineConfig({
}, },
vite: { vite: {
build: { build: {
concurrency: os.cpus().length,
rollupOptions: { rollupOptions: {
onwarn(warning, warn) { onwarn(warning, warn) {
// temporarily suppress this warning // temporarily suppress this warning

2
build.sh Normal file
View File

@@ -0,0 +1,2 @@
#!/bin/bash
/usr/bin/time -f "\n耗时: %E\nCPU占用: %P\n内存峰值: %M KB" pnpm run build