chore: use rolldown-vite (#4769)

---------

Signed-off-by: Artea <sepush@outlook.com>
Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com>
pull/4778/head
Artea 4 months ago committed by GitHub
parent e7f9d05c3e
commit 16a0ff895c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -1,6 +1,7 @@
import { import {
defineConfig, defineConfig,
resolveSiteDataByRoute, resolveSiteDataByRoute,
type ConfigEnv,
type HeadConfig type HeadConfig
} from 'vitepress' } from 'vitepress'
import { import {
@ -12,7 +13,8 @@ import llmstxt from 'vitepress-plugin-llms'
const prod = !!process.env.NETLIFY const prod = !!process.env.NETLIFY
export default defineConfig({ export default (ctx: ConfigEnv) =>
defineConfig({
title: 'VitePress', title: 'VitePress',
rewrites: { rewrites: {
@ -72,16 +74,35 @@ export default defineConfig({
} }
}, },
/* prettier-ignore */
head: [ head: [
['link', { rel: 'icon', type: 'image/svg+xml', href: '/vitepress-logo-mini.svg' }], [
['link', { rel: 'icon', type: 'image/png', href: '/vitepress-logo-mini.png' }], 'link',
{ rel: 'icon', type: 'image/svg+xml', href: '/vitepress-logo-mini.svg' }
],
[
'link',
{ rel: 'icon', type: 'image/png', href: '/vitepress-logo-mini.png' }
],
['meta', { name: 'theme-color', content: '#5f67ee' }], ['meta', { name: 'theme-color', content: '#5f67ee' }],
['meta', { property: 'og:type', content: 'website' }], ['meta', { property: 'og:type', content: 'website' }],
['meta', { property: 'og:site_name', content: 'VitePress' }], ['meta', { property: 'og:site_name', content: 'VitePress' }],
['meta', { property: 'og:image', content: 'https://vitepress.dev/vitepress-og.jpg' }], [
'meta',
{
property: 'og:image',
content: 'https://vitepress.dev/vitepress-og.jpg'
}
],
['meta', { property: 'og:url', content: 'https://vitepress.dev/' }], ['meta', { property: 'og:url', content: 'https://vitepress.dev/' }],
['script', { src: 'https://cdn.usefathom.com/script.js', 'data-site': 'AZBRSFGG', 'data-spa': 'auto', defer: '' }] [
'script',
{
src: 'https://cdn.usefathom.com/script.js',
'data-site': 'AZBRSFGG',
'data-spa': 'auto',
defer: ''
}
]
], ],
themeConfig: { themeConfig: {
@ -129,7 +150,10 @@ export default defineConfig({
workDir: 'en', workDir: 'en',
ignoreFiles: ['index.md'] ignoreFiles: ['index.md']
}) })
] ],
experimental: {
enableNativePlugin: ctx.command === 'build'
}
}, },
transformPageData: prod transformPageData: prod

@ -43,7 +43,6 @@ vitepress build [root]
| `--base <path>` | Public base path (default: `/`) (`string`) | | `--base <path>` | Public base path (default: `/`) (`string`) |
| `--target <target>` | Transpile target (default: `"modules"`) (`string`) | | `--target <target>` | Transpile target (default: `"modules"`) (`string`) |
| `--outDir <dir>` | Output directory relative to **cwd** (default: `<root>/.vitepress/dist`) (`string`) | | `--outDir <dir>` | Output directory relative to **cwd** (default: `<root>/.vitepress/dist`) (`string`) |
| `--minify [minifier]` | Enable/disable minification, or specify minifier to use (default: `"esbuild"`) (`boolean \| "terser" \| "esbuild"`) |
| `--assetsInlineLimit <number>` | Static asset base64 inline threshold in bytes (default: `4096`) (`number`) | | `--assetsInlineLimit <number>` | Static asset base64 inline threshold in bytes (default: `4096`) (`number`) |
## `vitepress preview` ## `vitepress preview`

@ -43,7 +43,6 @@ vitepress build [root]
| `--base <path>` | Ruta de base pública (por defecto: `/`) (`string`) | | `--base <path>` | Ruta de base pública (por defecto: `/`) (`string`) |
| `--target <target>` | Transpilar objetivo (por defecto: `"modules"`) (`string`) | | `--target <target>` | Transpilar objetivo (por defecto: `"modules"`) (`string`) |
| `--outDir <dir>` | Directorio de salida relativo a **cwd** (por defecto: `<root>/.vitepress/dist`) (`string`) | | `--outDir <dir>` | Directorio de salida relativo a **cwd** (por defecto: `<root>/.vitepress/dist`) (`string`) |
| `--minify [minifier]` | Habilitar/desabilitar la minificación, o especifica un minero para usar (por defecto: `"esbuild"`) (`boolean \| "terser" \| "esbuild"`) |
| `--assetsInlineLimit <number>` | Limitar los bytes para alinear los activos en base 64 (por defecto: `4096`) (`number`) | | `--assetsInlineLimit <number>` | Limitar los bytes para alinear los activos en base 64 (por defecto: `4096`) (`number`) |
## `vitepress preview` ## `vitepress preview`

@ -43,7 +43,6 @@ vitepress build [root]
| `--base <path>` | مسیر پایه عمومی (پیش‌فرض: `/`) (`string`) | | `--base <path>` | مسیر پایه عمومی (پیش‌فرض: `/`) (`string`) |
| `--target <target>` | هدف ترنسپایل (پیش‌فرض: `"modules"`) (`string`) | | `--target <target>` | هدف ترنسپایل (پیش‌فرض: `"modules"`) (`string`) |
| `--outDir <dir>` | دایرکتوری خروجی نسبت به **cwd** (پیش‌فرض: `<root>/.vitepress/dist`) (`string`) | | `--outDir <dir>` | دایرکتوری خروجی نسبت به **cwd** (پیش‌فرض: `<root>/.vitepress/dist`) (`string`) |
| `--minify [minifier]` | فعال یا غیرفعال کردن فشرده‌سازی، یا تعیین فشرده‌سازی برای استفاده (پیش‌فرض: `"esbuild"`) (`boolean \| "terser" \| "esbuild"`) |
| `--assetsInlineLimit <number>` | آستانه تبدیل پایه ۶۴ استاتیک به بایت (پیش‌فرض: `4096`) (`number`) | | `--assetsInlineLimit <number>` | آستانه تبدیل پایه ۶۴ استاتیک به بایت (پیش‌فرض: `4096`) (`number`) |
## `vitepress preview` {#vitepress-preview} ## `vitepress preview` {#vitepress-preview}

@ -43,7 +43,6 @@ vitepress build [root]
| `--base <path>` | Public 기본 경로 (기본값: `/`) (`string`) | | `--base <path>` | Public 기본 경로 (기본값: `/`) (`string`) |
| `--target <target>` | 트랜스파일 대상 (기본값: `"modules"`) (`string`) | | `--target <target>` | 트랜스파일 대상 (기본값: `"modules"`) (`string`) |
| `--outDir <dir>` | **cwd** 기준 출력 디렉터리 (기본값: `<root>/.vitepress/dist`) (`string`) | | `--outDir <dir>` | **cwd** 기준 출력 디렉터리 (기본값: `<root>/.vitepress/dist`) (`string`) |
| `--minify [minifier]` | minify 활성화/비활성화 또는 사용할 minify 도구 지정 (기본값: `"esbuild"`) (`boolean \| "terser" \| "esbuild"`) |
| `--assetsInlineLimit <number>`| 바이트 단위의 정적 에셋 base64 인라인 임계값 (기본값: `4096`) (`number`) | | `--assetsInlineLimit <number>`| 바이트 단위의 정적 에셋 base64 인라인 임계값 (기본값: `4096`) (`number`) |
## `vitepress preview` ## `vitepress preview`

@ -13,9 +13,9 @@
"@lunariajs/core": "^0.1.1", "@lunariajs/core": "^0.1.1",
"markdown-it-mathjax3": "^4.3.2", "markdown-it-mathjax3": "^4.3.2",
"open-cli": "^8.0.0", "open-cli": "^8.0.0",
"postcss-rtlcss": "^5.7.0", "postcss-rtlcss": "^5.7.1",
"vitepress": "workspace:*", "vitepress": "workspace:*",
"vitepress-plugin-group-icons": "^1.5.2", "vitepress-plugin-group-icons": "^1.5.5",
"vitepress-plugin-llms": "^1.1.3" "vitepress-plugin-llms": "^1.3.4"
} }
} }

@ -43,7 +43,6 @@ vitepress build [root]
| `--base <path>` | Caminho base público (padrão: `/`) (`string`) | | `--base <path>` | Caminho base público (padrão: `/`) (`string`) |
| `--target <target>` | Transpila o alvo (padrão: `"modules"`) (`string`) | | `--target <target>` | Transpila o alvo (padrão: `"modules"`) (`string`) |
| `--outDir <dir>` | Diretório de saída relativo ao **cwd** (padrão: `<root>/.vitepress/dist`) (`string`) | | `--outDir <dir>` | Diretório de saída relativo ao **cwd** (padrão: `<root>/.vitepress/dist`) (`string`) |
| `--minify [minifier]` | Habilita/desabilita minificação, ou especifica um minificador para usar (padrão: `"esbuild"`) (`boolean \| "terser" \| "esbuild"`) |
| `--assetsInlineLimit <number>` | Limite em bytes para alinhar ativos em base64 (padrão: `4096`) (`number`) | | `--assetsInlineLimit <number>` | Limite em bytes para alinhar ativos em base64 (padrão: `4096`) (`number`) |
## `vitepress preview` ## `vitepress preview`

@ -43,7 +43,6 @@ vitepress build [root]
| `--base <path>` | Публичный базовый путь (по умолчанию: `/`) (`string`) | | `--base <path>` | Публичный базовый путь (по умолчанию: `/`) (`string`) |
| `--target <target>` | Транспилировать цель (по умолчанию: `"modules"`) (`string`) | | `--target <target>` | Транспилировать цель (по умолчанию: `"modules"`) (`string`) |
| `--outDir <dir>` | Выходной каталог относительно **cwd** (по умолчанию: `<root>/.vitepress/dist`) (`string`) | | `--outDir <dir>` | Выходной каталог относительно **cwd** (по умолчанию: `<root>/.vitepress/dist`) (`string`) |
| `--minify [minifier]` | Включить/выключить минификацию или задать используемый минификатор (по умолчанию: `"esbuild"`) (`boolean \| "terser" \| "esbuild"`) |
| `--assetsInlineLimit <number>` | Статический встроенный порог ресурса base64 в байтах (по умолчанию: `4096`) (`number`) | | `--assetsInlineLimit <number>` | Статический встроенный порог ресурса base64 в байтах (по умолчанию: `4096`) (`number`) |
## `vitepress preview` {#vitepress-preview} ## `vitepress preview` {#vitepress-preview}

@ -43,7 +43,6 @@ vitepress build [root]
| `--base <path>` | public base URL (默认值: `/`) (`string`) | | `--base <path>` | public base URL (默认值: `/`) (`string`) |
| `--target <target>` | 转译目标 (默认值:`"modules"`) (`string`) | | `--target <target>` | 转译目标 (默认值:`"modules"`) (`string`) |
| `--outDir <dir>` | 输出目录 (默认值:`.vitepress/dist`) (`string`) | | `--outDir <dir>` | 输出目录 (默认值:`.vitepress/dist`) (`string`) |
| `--minify [minifier]` | 启用/禁用压缩,或指定要使用的压缩程序 (默认值:`"esbuild"`) (`boolean \| "terser" \| "esbuild"`) |
| `--assetsInlineLimit <number>` | 静态资源 base64 内联阈值(以字节为单位)(默认值:`4096`) (`number`) | | `--assetsInlineLimit <number>` | 静态资源 base64 内联阈值(以字节为单位)(默认值:`4096`) (`number`) |
## `vitepress preview` ## `vitepress preview`

@ -97,21 +97,21 @@
"dependencies": { "dependencies": {
"@docsearch/css": "^3.9.0", "@docsearch/css": "^3.9.0",
"@docsearch/js": "^3.9.0", "@docsearch/js": "^3.9.0",
"@iconify-json/simple-icons": "^1.2.33", "@iconify-json/simple-icons": "^1.2.36",
"@shikijs/core": "^3.4.0", "@shikijs/core": "^3.4.2",
"@shikijs/transformers": "^3.4.0", "@shikijs/transformers": "^3.4.2",
"@shikijs/types": "^3.4.0", "@shikijs/types": "^3.4.2",
"@vitejs/plugin-vue": "^5.2.4", "@vitejs/plugin-vue": "^5.2.4",
"@vue/devtools-api": "^7.7.6", "@vue/devtools-api": "^7.7.6",
"@vue/shared": "^3.5.13", "@vue/shared": "^3.5.16",
"@vueuse/core": "^13.1.0", "@vueuse/core": "^13.3.0",
"@vueuse/integrations": "^13.1.0", "@vueuse/integrations": "^13.3.0",
"focus-trap": "^7.6.4", "focus-trap": "^7.6.5",
"mark.js": "8.11.1", "mark.js": "8.11.1",
"minisearch": "^7.1.2", "minisearch": "^7.1.2",
"shiki": "^3.4.0", "shiki": "^3.4.2",
"vite": "^6.3.5", "vite": "^6.3.5",
"vue": "^3.5.13" "vue": "^3.5.16"
}, },
"devDependencies": { "devDependencies": {
"@clack/prompts": "^1.0.0-alpha.0", "@clack/prompts": "^1.0.0-alpha.0",
@ -139,20 +139,20 @@
"@types/markdown-it-container": "^2.0.10", "@types/markdown-it-container": "^2.0.10",
"@types/markdown-it-emoji": "^3.0.1", "@types/markdown-it-emoji": "^3.0.1",
"@types/minimist": "^1.2.5", "@types/minimist": "^1.2.5",
"@types/node": "^22.15.17", "@types/node": "^22.15.29",
"@types/picomatch": "^4.0.0", "@types/picomatch": "^4.0.0",
"@types/postcss-prefix-selector": "^1.16.3", "@types/postcss-prefix-selector": "^1.16.3",
"@types/prompts": "^2.4.9", "@types/prompts": "^2.4.9",
"chokidar": "^4.0.3", "chokidar": "^4.0.3",
"conventional-changelog-cli": "^5.0.0", "conventional-changelog-cli": "^5.0.0",
"cross-spawn": "^7.0.6", "cross-spawn": "^7.0.6",
"debug": "^4.4.0", "debug": "^4.4.1",
"esbuild": "^0.25.4", "esbuild": "^0.25.5",
"execa": "^9.5.3", "execa": "^9.6.0",
"fs-extra": "^11.3.0", "fs-extra": "^11.3.0",
"get-port": "^7.1.0", "get-port": "^7.1.0",
"gray-matter": "^4.0.3", "gray-matter": "^4.0.3",
"lint-staged": "^15.5.2", "lint-staged": "^16.1.0",
"lodash.template": "^4.5.0", "lodash.template": "^4.5.0",
"lru-cache": "^11.1.0", "lru-cache": "^11.1.0",
"markdown-it": "^14.1.0", "markdown-it": "^14.1.0",
@ -165,7 +165,7 @@
"minimist": "^1.2.8", "minimist": "^1.2.8",
"nanoid": "^5.1.5", "nanoid": "^5.1.5",
"ora": "^8.2.0", "ora": "^8.2.0",
"oxc-minify": "^0.69.0", "oxc-minify": "^0.72.2",
"p-map": "^7.0.3", "p-map": "^7.0.3",
"path-to-regexp": "^6.3.0", "path-to-regexp": "^6.3.0",
"picocolors": "^1.1.1", "picocolors": "^1.1.1",
@ -178,22 +178,22 @@
"prompts": "^2.4.2", "prompts": "^2.4.2",
"punycode": "^2.3.1", "punycode": "^2.3.1",
"rimraf": "^6.0.1", "rimraf": "^6.0.1",
"rollup": "^4.40.2", "rollup": "^4.41.1",
"rollup-plugin-dts": "6.1.1", "rollup-plugin-dts": "6.1.1",
"rollup-plugin-esbuild": "^6.2.1", "rollup-plugin-esbuild": "^6.2.1",
"semver": "^7.7.1", "semver": "^7.7.2",
"simple-git-hooks": "^2.13.0", "simple-git-hooks": "^2.13.0",
"sirv": "^3.0.1", "sirv": "^3.0.1",
"sitemap": "^8.0.0", "sitemap": "^8.0.0",
"tinyglobby": "^0.2.13", "tinyglobby": "^0.2.14",
"typescript": "^5.8.3", "typescript": "^5.8.3",
"vitest": "^3.1.3", "vitest": "^3.1.4",
"vue-tsc": "^3.0.0-alpha.6", "vue-tsc": "^3.0.0-alpha.8",
"wait-on": "^8.0.3" "wait-on": "^8.0.3"
}, },
"peerDependencies": { "peerDependencies": {
"markdown-it-mathjax3": "^4", "markdown-it-mathjax3": "^4",
"oxc-minify": "^0.69.0", "oxc-minify": "^0.72.2",
"postcss": "^8" "postcss": "^8"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
@ -207,7 +207,7 @@
"optional": true "optional": true
} }
}, },
"packageManager": "pnpm@10.10.0", "packageManager": "pnpm@10.11.0",
"pnpm": { "pnpm": {
"peerDependencyRules": { "peerDependencyRules": {
"ignoreMissing": [ "ignoreMissing": [
@ -217,7 +217,8 @@
] ]
}, },
"overrides": { "overrides": {
"ora>string-width": "^5" "ora>string-width": "^5",
"vite": "npm:rolldown-vite@latest"
}, },
"patchedDependencies": { "patchedDependencies": {
"@types/mdurl@2.0.0": "patches/@types__mdurl@2.0.0.patch", "@types/mdurl@2.0.0": "patches/@types__mdurl@2.0.0.patch",

File diff suppressed because it is too large Load Diff

@ -33,7 +33,7 @@ const plugins = [
}), }),
commonjs(), commonjs(),
nodeResolve({ preferBuiltins: false }), nodeResolve({ preferBuiltins: false }),
esbuild({ target: 'node18' }), esbuild({ target: 'node20' }),
json() json()
] ]

@ -88,7 +88,6 @@ export async function bundle(
emptyOutDir: true, emptyOutDir: true,
ssr, ssr,
ssrEmitAssets: config.mpa, ssrEmitAssets: config.mpa,
// minify with esbuild in MPA mode (for CSS)
minify: ssr ? !!config.mpa : (options.minify ?? !process.env.DEBUG), minify: ssr ? !!config.mpa : (options.minify ?? !process.env.DEBUG),
outDir: ssr ? config.tempDir : config.outDir, outDir: ssr ? config.tempDir : config.outDir,
cssCodeSplit: false, cssCodeSplit: false,

@ -34,6 +34,7 @@ const debug = _debug('vitepress:config')
const resolve = (root: string, file: string) => const resolve = (root: string, file: string) =>
normalizePath(path.resolve(root, `.vitepress`, file)) normalizePath(path.resolve(root, `.vitepress`, file))
export type { ConfigEnv }
export type UserConfigFn<ThemeConfig> = ( export type UserConfigFn<ThemeConfig> = (
env: ConfigEnv env: ConfigEnv
) => Awaitable<UserConfig<ThemeConfig>> ) => Awaitable<UserConfig<ThemeConfig>>

Loading…
Cancel
Save