vitepress 1.0.0-draft.2 → 1.0.0-draft.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/bin/vitepress.js +1 -1
- package/dist/client/app/composables/head.js +2 -2
- package/dist/client/app/data.js +2 -4
- package/dist/client/app/index.js +1 -5
- package/dist/client/index.d.ts +123 -134
- package/dist/client/index.js +1 -2
- package/dist/client/shared.js +21 -0
- package/dist/client/theme-default/Layout.vue +7 -0
- package/dist/client/theme-default/NotFound.vue +74 -14
- package/dist/client/theme-default/components/VPBox.vue +1 -5
- package/dist/client/theme-default/components/VPCarbonAds.vue +90 -0
- package/dist/client/theme-default/components/VPContent.vue +14 -10
- package/dist/client/theme-default/components/VPDoc.vue +73 -58
- package/dist/client/theme-default/components/VPDocAside.vue +34 -0
- package/dist/client/theme-default/components/VPDocAsideCarbonAds.vue +13 -0
- package/dist/client/theme-default/components/{VPDocOutline.vue → VPDocAsideOutline.vue} +14 -3
- package/dist/client/theme-default/components/VPDocAsideSponsors.vue +32 -0
- package/dist/client/theme-default/components/VPDocFooter.vue +1 -1
- package/dist/client/theme-default/components/VPFlyout.vue +2 -3
- package/dist/client/theme-default/components/VPFooter.vue +1 -1
- package/dist/client/theme-default/components/VPHero.vue +3 -3
- package/dist/client/theme-default/components/VPHomeSponsors.vue +3 -7
- package/dist/client/theme-default/components/VPLink.vue +2 -1
- package/dist/client/theme-default/components/VPLocalNav.vue +1 -1
- package/dist/client/theme-default/components/VPMenu.vue +8 -13
- package/dist/client/theme-default/components/VPMenuLink.vue +10 -4
- package/dist/client/theme-default/components/VPNav.vue +18 -1
- package/dist/client/theme-default/components/VPNavBar.vue +20 -8
- package/dist/client/theme-default/components/VPNavBarExtra.vue +20 -41
- package/dist/client/theme-default/components/VPNavBarMenuGroup.vue +2 -8
- package/dist/client/theme-default/components/VPNavBarMenuLink.vue +3 -3
- package/dist/client/theme-default/components/VPNavBarSearch.vue +6 -6
- package/dist/client/theme-default/components/VPNavBarTitle.vue +4 -2
- package/dist/client/theme-default/components/VPNavBarTranslations.vue +10 -39
- package/dist/client/theme-default/components/VPNavScreenMenuGroup.vue +1 -2
- package/dist/client/theme-default/components/VPNavScreenMenuGroupSection.vue +1 -1
- package/dist/client/theme-default/components/VPSidebar.vue +12 -6
- package/dist/client/theme-default/components/VPSidebarGroup.vue +80 -17
- package/dist/client/theme-default/components/VPSidebarLink.vue +2 -9
- package/dist/client/theme-default/components/VPSocialLink.vue +2 -2
- package/dist/client/theme-default/components/VPSocialLinks.vue +1 -1
- package/dist/client/theme-default/components/VPSponsors.vue +15 -40
- package/dist/client/theme-default/components/VPSponsorsGrid.vue +2 -2
- package/dist/client/theme-default/components/icons/VPIconMinus.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconMinusSquare.vue +6 -0
- package/dist/client/theme-default/components/icons/VPIconPlusSquare.vue +6 -0
- package/dist/client/theme-default/composables/aside.js +17 -0
- package/dist/client/theme-default/composables/copy-code.js +33 -0
- package/dist/client/theme-default/composables/outline.js +14 -4
- package/dist/client/theme-default/composables/sponsor-grid.js +8 -6
- package/dist/client/theme-default/index.js +4 -2
- package/dist/client/theme-default/styles/base.css +9 -1
- package/dist/client/theme-default/styles/components/custom-block.css +90 -0
- package/dist/client/theme-default/styles/{vp-doc.css → components/vp-doc.css} +152 -115
- package/dist/client/theme-default/styles/{vp-sponsor.css → components/vp-sponsor.css} +51 -7
- package/dist/client/theme-default/styles/vars.css +109 -58
- package/dist/node/cli.js +295 -37
- package/dist/node/index.d.ts +371 -361
- package/dist/node/index.js +22 -22
- package/dist/node/serve-f7c10936.js +64795 -0
- package/dist/node-cjs/cli.cjs +304 -0
- package/dist/node-cjs/index.cjs +38 -0
- package/dist/{node/serve-b5dc02b2.js → node-cjs/serve-c220f0a8.cjs} +27511 -28708
- package/package.json +47 -40
- package/theme.d.ts +7 -2
- package/types/default-theme.d.ts +15 -2
- package/types/shared.d.ts +3 -0
- package/dist/client/theme-default/composables/sponsor.js +0 -87
- package/dist/node/alias.js +0 -60
- package/dist/node/alias.js.map +0 -1
- package/dist/node/build/build.js +0 -57
- package/dist/node/build/build.js.map +0 -1
- package/dist/node/build/buildMPAClient.js +0 -44
- package/dist/node/build/buildMPAClient.js.map +0 -1
- package/dist/node/build/bundle.js +0 -163
- package/dist/node/build/bundle.js.map +0 -1
- package/dist/node/build/render.js +0 -185
- package/dist/node/build/render.js.map +0 -1
- package/dist/node/cli.js.map +0 -1
- package/dist/node/config.js +0 -176
- package/dist/node/config.js.map +0 -1
- package/dist/node/index.js.map +0 -1
- package/dist/node/markdown/markdown.js +0 -75
- package/dist/node/markdown/markdown.js.map +0 -1
- package/dist/node/markdown/plugins/component.js +0 -86
- package/dist/node/markdown/plugins/component.js.map +0 -1
- package/dist/node/markdown/plugins/containers.js +0 -41
- package/dist/node/markdown/plugins/containers.js.map +0 -1
- package/dist/node/markdown/plugins/headings.js +0 -25
- package/dist/node/markdown/plugins/headings.js.map +0 -1
- package/dist/node/markdown/plugins/highlight.js +0 -53
- package/dist/node/markdown/plugins/highlight.js.map +0 -1
- package/dist/node/markdown/plugins/highlightLines.js +0 -48
- package/dist/node/markdown/plugins/highlightLines.js.map +0 -1
- package/dist/node/markdown/plugins/hoist.js +0 -22
- package/dist/node/markdown/plugins/hoist.js.map +0 -1
- package/dist/node/markdown/plugins/image.js +0 -17
- package/dist/node/markdown/plugins/image.js.map +0 -1
- package/dist/node/markdown/plugins/lineNumbers.js +0 -23
- package/dist/node/markdown/plugins/lineNumbers.js.map +0 -1
- package/dist/node/markdown/plugins/link.js +0 -85
- package/dist/node/markdown/plugins/link.js.map +0 -1
- package/dist/node/markdown/plugins/preWrapper.js +0 -22
- package/dist/node/markdown/plugins/preWrapper.js.map +0 -1
- package/dist/node/markdown/plugins/slugify.js +0 -26
- package/dist/node/markdown/plugins/slugify.js.map +0 -1
- package/dist/node/markdown/plugins/snippet.js +0 -146
- package/dist/node/markdown/plugins/snippet.js.map +0 -1
- package/dist/node/markdownToVue.js +0 -166
- package/dist/node/markdownToVue.js.map +0 -1
- package/dist/node/plugin.js +0 -227
- package/dist/node/plugin.js.map +0 -1
- package/dist/node/serve/serve.js +0 -59
- package/dist/node/serve/serve.js.map +0 -1
- package/dist/node/server.js +0 -18
- package/dist/node/server.js.map +0 -1
- package/dist/node/shared.js +0 -72
- package/dist/node/shared.js.map +0 -1
- package/dist/node/staticDataPlugin.js +0 -99
- package/dist/node/staticDataPlugin.js.map +0 -1
- package/dist/node/utils/getGitTimestamp.js +0 -17
- package/dist/node/utils/getGitTimestamp.js.map +0 -1
- package/dist/node/utils/parseHeader.js +0 -57
- package/dist/node/utils/parseHeader.js.map +0 -1
- package/dist/node/utils/slash.js +0 -8
- package/dist/node/utils/slash.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vitepress",
|
|
3
|
-
"version": "1.0.0-draft.
|
|
4
|
-
"packageManager": "pnpm@7.0.1",
|
|
3
|
+
"version": "1.0.0-draft.5",
|
|
5
4
|
"description": "Vite & Vue powered static site generator",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"packageManager": "pnpm@7.0.1",
|
|
6
7
|
"main": "dist/node/index.js",
|
|
7
|
-
"
|
|
8
|
+
"types": "types/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./types/index.d.ts",
|
|
12
|
+
"import": "./dist/node/index.js",
|
|
13
|
+
"require": "./dist/node-cjs/index.cjs"
|
|
14
|
+
},
|
|
15
|
+
"./dist/client/*": "./dist/client/*"
|
|
16
|
+
},
|
|
8
17
|
"bin": {
|
|
9
18
|
"vitepress": "bin/vitepress.js"
|
|
10
19
|
},
|
|
@@ -31,18 +40,7 @@
|
|
|
31
40
|
"url": "https://github.com/vuejs/vitepress/issues"
|
|
32
41
|
},
|
|
33
42
|
"engines": {
|
|
34
|
-
"node": ">=14.
|
|
35
|
-
},
|
|
36
|
-
"gitHooks": {
|
|
37
|
-
"pre-commit": "lint-staged"
|
|
38
|
-
},
|
|
39
|
-
"lint-staged": {
|
|
40
|
-
"*.js": [
|
|
41
|
-
"prettier --write"
|
|
42
|
-
],
|
|
43
|
-
"*.ts": [
|
|
44
|
-
"prettier --parser=typescript --write"
|
|
45
|
-
]
|
|
43
|
+
"node": ">=14.6.0"
|
|
46
44
|
},
|
|
47
45
|
"dependencies": {
|
|
48
46
|
"@docsearch/css": "^3.0.0",
|
|
@@ -50,16 +48,16 @@
|
|
|
50
48
|
"@vitejs/plugin-vue": "^2.3.2",
|
|
51
49
|
"@vueuse/core": "^8.5.0",
|
|
52
50
|
"body-scroll-lock": "^4.0.0-beta.0",
|
|
53
|
-
"
|
|
51
|
+
"shiki": "^0.10.1",
|
|
54
52
|
"vite": "^2.9.7",
|
|
55
53
|
"vue": "3.2.33"
|
|
56
54
|
},
|
|
57
55
|
"devDependencies": {
|
|
58
|
-
"@microsoft/api-extractor": "^7.23.1",
|
|
59
56
|
"@rollup/plugin-alias": "^3.1.5",
|
|
60
57
|
"@rollup/plugin-commonjs": "^20.0.0",
|
|
61
58
|
"@rollup/plugin-json": "^4.1.0",
|
|
62
59
|
"@rollup/plugin-node-resolve": "^13.0.4",
|
|
60
|
+
"@rollup/plugin-replace": "^4.0.0",
|
|
63
61
|
"@types/body-scroll-lock": "^3.1.0",
|
|
64
62
|
"@types/compression": "^1.7.0",
|
|
65
63
|
"@types/cross-spawn": "^6.0.2",
|
|
@@ -73,7 +71,7 @@
|
|
|
73
71
|
"@types/minimist": "^1.2.2",
|
|
74
72
|
"@types/node": "^15.6.1",
|
|
75
73
|
"@types/polka": "^0.5.3",
|
|
76
|
-
"
|
|
74
|
+
"@types/prompts": "^2.0.14",
|
|
77
75
|
"chokidar": "^3.5.1",
|
|
78
76
|
"compression": "^1.7.4",
|
|
79
77
|
"conventional-changelog-cli": "^2.1.1",
|
|
@@ -83,10 +81,9 @@
|
|
|
83
81
|
"enquirer": "^2.3.6",
|
|
84
82
|
"esbuild": "^0.14.0",
|
|
85
83
|
"escape-html": "^1.0.3",
|
|
86
|
-
"execa": "^
|
|
84
|
+
"execa": "^6.1.0",
|
|
87
85
|
"fast-glob": "^3.2.7",
|
|
88
86
|
"fs-extra": "^10.0.0",
|
|
89
|
-
"globby": "^11.0.3",
|
|
90
87
|
"gray-matter": "^4.0.3",
|
|
91
88
|
"lint-staged": "^11.0.0",
|
|
92
89
|
"lru-cache": "^6.0.0",
|
|
@@ -95,41 +92,52 @@
|
|
|
95
92
|
"markdown-it-attrs": "^4.1.3",
|
|
96
93
|
"markdown-it-container": "^3.0.0",
|
|
97
94
|
"markdown-it-emoji": "^2.0.0",
|
|
98
|
-
"markdown-it-
|
|
95
|
+
"markdown-it-toc-done-right": "^4.2.0",
|
|
99
96
|
"micromatch": "^4.0.4",
|
|
100
97
|
"minimist": "^1.2.5",
|
|
101
98
|
"npm-run-all": "^4.1.5",
|
|
102
99
|
"ora": "^5.4.0",
|
|
100
|
+
"picocolors": "^1.0.0",
|
|
103
101
|
"polka": "^0.5.2",
|
|
104
102
|
"prettier": "^2.3.0",
|
|
103
|
+
"prompts": "^2.4.2",
|
|
105
104
|
"rimraf": "^3.0.2",
|
|
106
105
|
"rollup": "^2.56.3",
|
|
106
|
+
"rollup-plugin-dts": "^4.2.2",
|
|
107
107
|
"rollup-plugin-esbuild": "^4.8.2",
|
|
108
108
|
"semver": "^7.3.5",
|
|
109
|
+
"simple-git-hooks": "^2.7.0",
|
|
109
110
|
"sirv": "^1.0.12",
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
"
|
|
111
|
+
"supports-color": "^9.2.2",
|
|
112
|
+
"typescript": "^4.7.2",
|
|
113
|
+
"vitest": "^0.10.4"
|
|
114
|
+
},
|
|
115
|
+
"simple-git-hooks": {
|
|
116
|
+
"pre-commit": "lint-staged"
|
|
117
|
+
},
|
|
118
|
+
"lint-staged": {
|
|
119
|
+
"*": [
|
|
120
|
+
"prettier --write --ignore-unknown"
|
|
121
|
+
]
|
|
113
122
|
},
|
|
114
123
|
"scripts": {
|
|
115
|
-
"dev": "run-s dev-shared dev-start",
|
|
124
|
+
"dev": "rimraf dist && run-s dev-shared dev-start",
|
|
116
125
|
"dev-start": "run-p dev-client dev-node dev-watch",
|
|
117
126
|
"dev-client": "tsc -w -p src/client",
|
|
118
|
-
"dev-node": "
|
|
127
|
+
"dev-node": "DEV=true pnpm run build-node -w",
|
|
119
128
|
"dev-shared": "node scripts/copyShared",
|
|
120
129
|
"dev-watch": "node scripts/watchAndCopy",
|
|
121
|
-
"build": "run-s build-prepare build-client build-node
|
|
122
|
-
"build-prepare": "rimraf
|
|
130
|
+
"build": "run-s build-prepare build-client build-node",
|
|
131
|
+
"build-prepare": "rimraf dist && node scripts/copyShared",
|
|
123
132
|
"build-client": "tsc -p src/client && node scripts/copyClient",
|
|
124
|
-
"build-node": "rollup
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"lint": "run-
|
|
129
|
-
"
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
"test:all": "run-s lint test",
|
|
133
|
+
"build-node": "rollup --config rollup.config.ts --configPlugin esbuild",
|
|
134
|
+
"format": "prettier --check --write .",
|
|
135
|
+
"format-fail": "prettier --check .",
|
|
136
|
+
"lint": "pnpm run format",
|
|
137
|
+
"lint-fail": "pnpm run format-fail",
|
|
138
|
+
"test": "vitest -r __tests__",
|
|
139
|
+
"test-run": "vitest run -r __tests__",
|
|
140
|
+
"check": "run-s lint test-run build",
|
|
133
141
|
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
|
|
134
142
|
"release": "node scripts/release.js",
|
|
135
143
|
"docs": "run-p dev docs-dev",
|
|
@@ -138,7 +146,6 @@
|
|
|
138
146
|
"docs-build": "run-s build docs-build-only",
|
|
139
147
|
"docs-build-only": "node ./bin/vitepress build docs",
|
|
140
148
|
"docs-serve": "node ./bin/vitepress serve docs",
|
|
141
|
-
"ci-docs": "run-s
|
|
142
|
-
}
|
|
143
|
-
"readme": "# (WIP) VitePress 📝💨\n\n[](https://github.com/vuejs/vitepress/actions)\n[](https://www.npmjs.com/package/vitepress)\n\n---\n\nVitePress is [VuePress](https://vuepress.vuejs.org)' spiritual successor, built on top of [vite](https://github.com/vitejs/vite).\n\n## Documentation\n\nTo check out docs, visit [vitepress.vuejs.org](https://vitepress.vuejs.org).\n\n## Changelog\n\nDetailed changes for each release are documented in the [CHANGELOG](https://github.com/vuejs/vitepress/blob/main/CHANGELOG.md).\n\n## Contribution\n\nPlease make sure to read the [Contributing Guide](https://github.com/vuejs/vitepress/blob/main/.github/contributing.md) before making a pull request.\n\n## License\n\n[MIT](https://github.com/vuejs/vitepress/blob/main/LICENSE)\n\nCopyright (c) 2019-present, Yuxi (Evan) You\n"
|
|
149
|
+
"ci-docs": "run-s docs-build"
|
|
150
|
+
}
|
|
144
151
|
}
|
package/theme.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
// so that users can do `import DefaultTheme from 'vitepress/theme'`
|
|
2
2
|
import { ComponentOptions } from 'vue'
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
export const VPHomeHero = ComponentOptions
|
|
5
|
+
export const VPHomeFeatures = ComponentOptions
|
|
6
|
+
export const VPHomeSponsors = ComponentOptions
|
|
7
|
+
export const VPDocAsideSponsors = ComponentOptions
|
|
8
|
+
|
|
9
|
+
declare const theme: {
|
|
5
10
|
Layout: ComponentOptions
|
|
6
11
|
NotFound: ComponentOptions
|
|
7
12
|
}
|
|
8
13
|
|
|
9
|
-
export default
|
|
14
|
+
export default theme
|
package/types/default-theme.d.ts
CHANGED
|
@@ -82,6 +82,20 @@ export namespace DefaultTheme {
|
|
|
82
82
|
export interface SidebarGroup {
|
|
83
83
|
text: string
|
|
84
84
|
items: SidebarItem[]
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* If `true`, toggle button is shown.
|
|
88
|
+
*
|
|
89
|
+
* @default false
|
|
90
|
+
*/
|
|
91
|
+
collapsible?: boolean
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* If `true`, collapsible group is collapsed by default.
|
|
95
|
+
*
|
|
96
|
+
* @default false
|
|
97
|
+
*/
|
|
98
|
+
collapsed?: boolean
|
|
85
99
|
}
|
|
86
100
|
|
|
87
101
|
export interface SidebarItem {
|
|
@@ -176,8 +190,7 @@ export namespace DefaultTheme {
|
|
|
176
190
|
// carbon ads ----------------------------------------------------------------
|
|
177
191
|
|
|
178
192
|
export interface CarbonAdsOptions {
|
|
179
|
-
|
|
180
|
-
custom?: string
|
|
193
|
+
code: string
|
|
181
194
|
placement: string
|
|
182
195
|
}
|
|
183
196
|
}
|
package/types/shared.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export { DefaultTheme } from './default-theme'
|
|
|
5
5
|
export interface PageData {
|
|
6
6
|
relativePath: string
|
|
7
7
|
title: string
|
|
8
|
+
titleTemplate?: string | boolean
|
|
8
9
|
description: string
|
|
9
10
|
headers: Header[]
|
|
10
11
|
frontmatter: Record<string, any>
|
|
@@ -28,6 +29,7 @@ export interface SiteData<ThemeConfig = any> {
|
|
|
28
29
|
lang: string
|
|
29
30
|
|
|
30
31
|
title: string
|
|
32
|
+
titleTemplate?: string | boolean
|
|
31
33
|
description: string
|
|
32
34
|
head: HeadConfig[]
|
|
33
35
|
appearance: boolean
|
|
@@ -64,6 +66,7 @@ export type HeadConfig =
|
|
|
64
66
|
export interface LocaleConfig {
|
|
65
67
|
lang: string
|
|
66
68
|
title?: string
|
|
69
|
+
titleTemplate?: string | boolean
|
|
67
70
|
description?: string
|
|
68
71
|
head?: HeadConfig[]
|
|
69
72
|
label?: string
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { onMounted, onUnmounted } from 'vue';
|
|
2
|
-
import { throttleAndDebounce } from '../support/utils';
|
|
3
|
-
const GridSettings = {
|
|
4
|
-
small: [
|
|
5
|
-
[920, 6, 2],
|
|
6
|
-
[768, 5, 2],
|
|
7
|
-
[640, 4, 2],
|
|
8
|
-
[480, 3, 2],
|
|
9
|
-
[0, 2, 2]
|
|
10
|
-
],
|
|
11
|
-
medium: [
|
|
12
|
-
[832, 4, 3],
|
|
13
|
-
[640, 3, 3],
|
|
14
|
-
[480, 2, 2]
|
|
15
|
-
],
|
|
16
|
-
big: [
|
|
17
|
-
[832, 3, 3],
|
|
18
|
-
[640, 2, 2]
|
|
19
|
-
]
|
|
20
|
-
};
|
|
21
|
-
export function useSponsorsGrid(options) {
|
|
22
|
-
const onResize = throttleAndDebounce(manage, 100);
|
|
23
|
-
onMounted(() => {
|
|
24
|
-
manage();
|
|
25
|
-
window.addEventListener('resize', onResize);
|
|
26
|
-
});
|
|
27
|
-
onUnmounted(() => {
|
|
28
|
-
window.removeEventListener('resize', onResize);
|
|
29
|
-
});
|
|
30
|
-
function manage() {
|
|
31
|
-
adjustSlots(options.el.value, options.size);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function adjustSlots(el, size) {
|
|
35
|
-
const tsize = el.children.length;
|
|
36
|
-
const asize = el.querySelectorAll('.vp-sponsor-grid-item:not(.empty)').length;
|
|
37
|
-
const grid = setGrid(el, size, asize);
|
|
38
|
-
manageSlots(el, grid, tsize, asize);
|
|
39
|
-
}
|
|
40
|
-
function setGrid(el, size, items) {
|
|
41
|
-
const settings = GridSettings[size];
|
|
42
|
-
const screen = window.innerWidth;
|
|
43
|
-
let grid = 1;
|
|
44
|
-
const match = settings.some(([breakpoint, value, min]) => {
|
|
45
|
-
if (screen < breakpoint) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
if (items < min) {
|
|
49
|
-
setGridData(el, items);
|
|
50
|
-
grid = items;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
setGridData(el, value);
|
|
54
|
-
grid = value;
|
|
55
|
-
}
|
|
56
|
-
return true;
|
|
57
|
-
});
|
|
58
|
-
match || setGridData(el, 1);
|
|
59
|
-
return grid;
|
|
60
|
-
}
|
|
61
|
-
function setGridData(el, value) {
|
|
62
|
-
el.dataset.vpGrid = String(value);
|
|
63
|
-
}
|
|
64
|
-
function manageSlots(el, grid, tsize, asize) {
|
|
65
|
-
const diff = tsize - asize;
|
|
66
|
-
const rem = asize % grid;
|
|
67
|
-
const drem = rem === 0 ? rem : grid - rem;
|
|
68
|
-
neutralizeSlots(el, drem - diff);
|
|
69
|
-
}
|
|
70
|
-
function neutralizeSlots(el, count) {
|
|
71
|
-
if (count === 0) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
count > 0 ? addSlots(el, count) : removeSlots(el, count * -1);
|
|
75
|
-
}
|
|
76
|
-
function addSlots(el, count) {
|
|
77
|
-
for (let i = 0; i < count; i++) {
|
|
78
|
-
const slot = document.createElement('div');
|
|
79
|
-
slot.classList.add('vp-sponsor-grid-item', 'empty');
|
|
80
|
-
el.append(slot);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
function removeSlots(el, count) {
|
|
84
|
-
for (let i = 0; i < count; i++) {
|
|
85
|
-
el.removeChild(el.lastElementChild);
|
|
86
|
-
}
|
|
87
|
-
}
|
package/dist/node/alias.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.resolveAliases = exports.SITE_DATA_REQUEST_PATH = exports.SITE_DATA_ID = exports.DEFAULT_THEME_PATH = exports.SHARED_PATH = exports.APP_PATH = exports.DIST_CLIENT_PATH = void 0;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const PKG_ROOT = path_1.default.join(__dirname, '../../');
|
|
9
|
-
exports.DIST_CLIENT_PATH = path_1.default.join(__dirname, '../client');
|
|
10
|
-
exports.APP_PATH = path_1.default.join(exports.DIST_CLIENT_PATH, 'app');
|
|
11
|
-
exports.SHARED_PATH = path_1.default.join(exports.DIST_CLIENT_PATH, 'shared');
|
|
12
|
-
exports.DEFAULT_THEME_PATH = path_1.default.join(exports.DIST_CLIENT_PATH, 'theme-default');
|
|
13
|
-
// special virtual file
|
|
14
|
-
// we can't directly import '/@siteData' because
|
|
15
|
-
// - it's not an actual file so we can't use tsconfig paths to redirect it
|
|
16
|
-
// - TS doesn't allow shimming a module that starts with '/'
|
|
17
|
-
exports.SITE_DATA_ID = '@siteData';
|
|
18
|
-
exports.SITE_DATA_REQUEST_PATH = '/' + exports.SITE_DATA_ID;
|
|
19
|
-
const vueRuntimePath = 'vue/dist/vue.runtime.esm-bundler.js';
|
|
20
|
-
function resolveAliases(root, themeDir) {
|
|
21
|
-
const paths = {
|
|
22
|
-
'/@theme': themeDir,
|
|
23
|
-
'@theme': themeDir,
|
|
24
|
-
[exports.SITE_DATA_ID]: exports.SITE_DATA_REQUEST_PATH
|
|
25
|
-
};
|
|
26
|
-
// prioritize vue installed in project root and fallback to
|
|
27
|
-
// vue that comes with vitepress itself.
|
|
28
|
-
let vuePath;
|
|
29
|
-
try {
|
|
30
|
-
vuePath = require.resolve(vueRuntimePath, { paths: [root] });
|
|
31
|
-
}
|
|
32
|
-
catch (e) {
|
|
33
|
-
vuePath = require.resolve(vueRuntimePath);
|
|
34
|
-
}
|
|
35
|
-
const aliases = [
|
|
36
|
-
...Object.keys(paths).map((p) => ({
|
|
37
|
-
find: p,
|
|
38
|
-
replacement: paths[p]
|
|
39
|
-
})),
|
|
40
|
-
{
|
|
41
|
-
find: /^vitepress$/,
|
|
42
|
-
replacement: path_1.default.join(__dirname, '../client/index')
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
find: /^vitepress\/theme$/,
|
|
46
|
-
replacement: path_1.default.join(__dirname, '../client/theme-default/index')
|
|
47
|
-
},
|
|
48
|
-
// alias for local linked development
|
|
49
|
-
{ find: /^vitepress\//, replacement: PKG_ROOT + '/' },
|
|
50
|
-
// make sure it always use the same vue dependency that comes with
|
|
51
|
-
// vitepress itself
|
|
52
|
-
{
|
|
53
|
-
find: /^vue$/,
|
|
54
|
-
replacement: vuePath
|
|
55
|
-
}
|
|
56
|
-
];
|
|
57
|
-
return aliases;
|
|
58
|
-
}
|
|
59
|
-
exports.resolveAliases = resolveAliases;
|
|
60
|
-
//# sourceMappingURL=alias.js.map
|
package/dist/node/alias.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alias.js","sourceRoot":"","sources":["../../src/node/alias.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAGvB,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AAClC,QAAA,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AACpD,QAAA,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,KAAK,CAAC,CAAA;AAC7C,QAAA,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,QAAQ,CAAC,CAAA;AACnD,QAAA,kBAAkB,GAAG,cAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,eAAe,CAAC,CAAA;AAE9E,uBAAuB;AACvB,gDAAgD;AAChD,0EAA0E;AAC1E,4DAA4D;AAC/C,QAAA,YAAY,GAAG,WAAW,CAAA;AAC1B,QAAA,sBAAsB,GAAG,GAAG,GAAG,oBAAY,CAAA;AAExD,MAAM,cAAc,GAAG,qCAAqC,CAAA;AAE5D,SAAgB,cAAc,CAAC,IAAY,EAAE,QAAgB;IAC3D,MAAM,KAAK,GAA2B;QACpC,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,QAAQ;QAClB,CAAC,oBAAY,CAAC,EAAE,8BAAsB;KACvC,CAAA;IAED,2DAA2D;IAC3D,wCAAwC;IACxC,IAAI,OAAO,CAAA;IACX,IAAI;QACF,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KAC7D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;KAC1C;IAED,MAAM,OAAO,GAAY;QACvB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC;YACP,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;SACtB,CAAC,CAAC;QACH;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACrD;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,+BAA+B,CAAC;SACnE;QACD,qCAAqC;QACrC,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,GAAG,GAAG,EAAE;QACrD,kEAAkE;QAClE,mBAAmB;QACnB;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,OAAO;SACrB;KACF,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAxCD,wCAwCC"}
|
package/dist/node/build/build.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.build = void 0;
|
|
7
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
-
const bundle_1 = require("./bundle");
|
|
9
|
-
const config_1 = require("../config");
|
|
10
|
-
const render_1 = require("./render");
|
|
11
|
-
const ora_1 = __importDefault(require("ora"));
|
|
12
|
-
const path_1 = __importDefault(require("path"));
|
|
13
|
-
async function build(root, buildOptions = {}) {
|
|
14
|
-
const start = Date.now();
|
|
15
|
-
process.env.NODE_ENV = 'production';
|
|
16
|
-
const siteConfig = await (0, config_1.resolveConfig)(root, 'build', 'production');
|
|
17
|
-
if (buildOptions.mpa) {
|
|
18
|
-
siteConfig.mpa = true;
|
|
19
|
-
delete buildOptions.mpa;
|
|
20
|
-
}
|
|
21
|
-
try {
|
|
22
|
-
const { clientResult, serverResult, pageToHashMap } = await (0, bundle_1.bundle)(siteConfig, buildOptions);
|
|
23
|
-
const spinner = (0, ora_1.default)();
|
|
24
|
-
spinner.start('rendering pages...');
|
|
25
|
-
try {
|
|
26
|
-
const appChunk = clientResult &&
|
|
27
|
-
clientResult.output.find((chunk) => chunk.type === 'chunk' && chunk.isEntry);
|
|
28
|
-
const cssChunk = (siteConfig.mpa ? serverResult : clientResult).output.find((chunk) => chunk.type === 'asset' && chunk.fileName.endsWith('.css'));
|
|
29
|
-
// We embed the hash map string into each page directly so that it doesn't
|
|
30
|
-
// alter the main chunk's hash on every build. It's also embedded as a
|
|
31
|
-
// string and JSON.parsed from the client because it's faster than embedding
|
|
32
|
-
// as JS object literal.
|
|
33
|
-
const hashMapString = JSON.stringify(JSON.stringify(pageToHashMap));
|
|
34
|
-
for (const page of siteConfig.pages) {
|
|
35
|
-
await (0, render_1.renderPage)(siteConfig, page, clientResult, appChunk, cssChunk, pageToHashMap, hashMapString);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
catch (e) {
|
|
39
|
-
spinner.stopAndPersist({
|
|
40
|
-
symbol: bundle_1.failMark
|
|
41
|
-
});
|
|
42
|
-
throw e;
|
|
43
|
-
}
|
|
44
|
-
spinner.stopAndPersist({
|
|
45
|
-
symbol: bundle_1.okMark
|
|
46
|
-
});
|
|
47
|
-
// emit page hash map for the case where a user session is open
|
|
48
|
-
// when the site got redeployed (which invalidates current hash map)
|
|
49
|
-
fs_extra_1.default.writeJSONSync(path_1.default.join(siteConfig.outDir, 'hashmap.json'), pageToHashMap);
|
|
50
|
-
}
|
|
51
|
-
finally {
|
|
52
|
-
await fs_extra_1.default.remove(siteConfig.tempDir);
|
|
53
|
-
}
|
|
54
|
-
console.log(`build complete in ${((Date.now() - start) / 1000).toFixed(2)}s.`);
|
|
55
|
-
}
|
|
56
|
-
exports.build = build;
|
|
57
|
-
//# sourceMappingURL=build.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/node/build/build.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAyB;AACzB,qCAAmD;AAEnD,sCAAyC;AACzC,qCAAqC;AAErC,8CAAqB;AACrB,gDAAuB;AAEhB,KAAK,UAAU,KAAK,CACzB,IAAY,EACZ,eAAgD,EAAE;IAElD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAExB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAA;IACnC,MAAM,UAAU,GAAG,MAAM,IAAA,sBAAa,EAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;IAEnE,IAAI,YAAY,CAAC,GAAG,EAAE;QACpB,UAAU,CAAC,GAAG,GAAG,IAAI,CAAA;QACrB,OAAO,YAAY,CAAC,GAAG,CAAA;KACxB;IAED,IAAI;QACF,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,eAAM,EAChE,UAAU,EACV,YAAY,CACb,CAAA;QAED,MAAM,OAAO,GAAG,IAAA,aAAG,GAAE,CAAA;QACrB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAEnC,IAAI;YACF,MAAM,QAAQ,GACZ,YAAY;gBACX,YAAY,CAAC,MAAM,CAAC,IAAI,CACvB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CACnC,CAAA;YAEnB,MAAM,QAAQ,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAC7C,CAAC,MAAM,CAAC,IAAI,CACX,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CACtD,CAAA;YAEhB,0EAA0E;YAC1E,sEAAsE;YACtE,4EAA4E;YAC5E,wBAAwB;YACxB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;YAEnE,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE;gBACnC,MAAM,IAAA,mBAAU,EACd,UAAU,EACV,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,aAAa,CACd,CAAA;aACF;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,cAAc,CAAC;gBACrB,MAAM,EAAE,iBAAQ;aACjB,CAAC,CAAA;YACF,MAAM,CAAC,CAAA;SACR;QACD,OAAO,CAAC,cAAc,CAAC;YACrB,MAAM,EAAE,eAAM;SACf,CAAC,CAAA;QAEF,+DAA+D;QAC/D,oEAAoE;QACpE,kBAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,aAAa,CACd,CAAA;KACF;YAAS;QACR,MAAM,kBAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;KACpC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAChF,CAAC;AA1ED,sBA0EC"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildMPAClient = void 0;
|
|
4
|
-
const vite_1 = require("vite");
|
|
5
|
-
const virtualEntry = 'client.js';
|
|
6
|
-
async function buildMPAClient(js, config) {
|
|
7
|
-
const files = Object.keys(js);
|
|
8
|
-
const themeFiles = files.filter((f) => !f.endsWith('.md'));
|
|
9
|
-
const pages = files.filter((f) => f.endsWith('.md'));
|
|
10
|
-
return (0, vite_1.build)({
|
|
11
|
-
root: config.srcDir,
|
|
12
|
-
base: config.site.base,
|
|
13
|
-
logLevel: 'warn',
|
|
14
|
-
build: {
|
|
15
|
-
emptyOutDir: false,
|
|
16
|
-
outDir: config.outDir,
|
|
17
|
-
rollupOptions: {
|
|
18
|
-
input: [virtualEntry, ...pages]
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
plugins: [
|
|
22
|
-
{
|
|
23
|
-
name: 'vitepress-mpa-client',
|
|
24
|
-
resolveId(id) {
|
|
25
|
-
if (id === virtualEntry) {
|
|
26
|
-
return id;
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
load(id) {
|
|
30
|
-
if (id === virtualEntry) {
|
|
31
|
-
return themeFiles
|
|
32
|
-
.map((file) => `import ${JSON.stringify(file)}`)
|
|
33
|
-
.join('\n');
|
|
34
|
-
}
|
|
35
|
-
else if (id in js) {
|
|
36
|
-
return js[id];
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
exports.buildMPAClient = buildMPAClient;
|
|
44
|
-
//# sourceMappingURL=buildMPAClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildMPAClient.js","sourceRoot":"","sources":["../../../src/node/build/buildMPAClient.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAI5B,MAAM,YAAY,GAAG,WAAW,CAAA;AAEzB,KAAK,UAAU,cAAc,CAClC,EAA0B,EAC1B,MAAkB;IAElB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAEpD,OAAO,IAAA,YAAK,EAAC;QACX,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;QACtB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE;YACL,WAAW,EAAE,KAAK;YAClB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,aAAa,EAAE;gBACb,KAAK,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC;aAChC;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,SAAS,CAAC,EAAE;oBACV,IAAI,EAAE,KAAK,YAAY,EAAE;wBACvB,OAAO,EAAE,CAAA;qBACV;gBACH,CAAC;gBACD,IAAI,CAAC,EAAE;oBACL,IAAI,EAAE,KAAK,YAAY,EAAE;wBACvB,OAAO,UAAU;6BACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;6BAC/C,IAAI,CAAC,IAAI,CAAC,CAAA;qBACd;yBAAM,IAAI,EAAE,IAAI,EAAE,EAAE;wBACnB,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;qBACd;gBACH,CAAC;aACF;SACF;KACF,CAA0B,CAAA;AAC7B,CAAC;AAvCD,wCAuCC"}
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.bundle = exports.failMark = exports.okMark = void 0;
|
|
7
|
-
const ora_1 = __importDefault(require("ora"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
10
|
-
const slash_1 = require("../utils/slash");
|
|
11
|
-
const alias_1 = require("../alias");
|
|
12
|
-
const vite_1 = require("vite");
|
|
13
|
-
const plugin_1 = require("../plugin");
|
|
14
|
-
const buildMPAClient_1 = require("./buildMPAClient");
|
|
15
|
-
exports.okMark = '\x1b[32m✓\x1b[0m';
|
|
16
|
-
exports.failMark = '\x1b[31m✖\x1b[0m';
|
|
17
|
-
// bundles the VitePress app for both client AND server.
|
|
18
|
-
async function bundle(config, options) {
|
|
19
|
-
const { root, srcDir } = config;
|
|
20
|
-
const pageToHashMap = Object.create(null);
|
|
21
|
-
const clientJSMap = Object.create(null);
|
|
22
|
-
// define custom rollup input
|
|
23
|
-
// this is a multi-entry build - every page is considered an entry chunk
|
|
24
|
-
// the loading is done via filename conversion rules so that the
|
|
25
|
-
// metadata doesn't need to be included in the main chunk.
|
|
26
|
-
const input = {
|
|
27
|
-
app: path_1.default.resolve(alias_1.APP_PATH, 'index.js')
|
|
28
|
-
};
|
|
29
|
-
config.pages.forEach((file) => {
|
|
30
|
-
// page filename conversion
|
|
31
|
-
// foo/bar.md -> foo_bar.md
|
|
32
|
-
input[(0, slash_1.slash)(file).replace(/\//g, '_')] = path_1.default.resolve(srcDir, file);
|
|
33
|
-
});
|
|
34
|
-
// resolve options to pass to vite
|
|
35
|
-
const { rollupOptions } = options;
|
|
36
|
-
const resolveViteConfig = (ssr) => ({
|
|
37
|
-
root: srcDir,
|
|
38
|
-
base: config.site.base,
|
|
39
|
-
logLevel: 'warn',
|
|
40
|
-
plugins: (0, plugin_1.createVitePressPlugin)(root, config, ssr, pageToHashMap, clientJSMap),
|
|
41
|
-
// @ts-ignore
|
|
42
|
-
ssr: {
|
|
43
|
-
noExternal: ['vitepress']
|
|
44
|
-
},
|
|
45
|
-
build: {
|
|
46
|
-
...options,
|
|
47
|
-
emptyOutDir: true,
|
|
48
|
-
ssr,
|
|
49
|
-
outDir: ssr ? config.tempDir : config.outDir,
|
|
50
|
-
cssCodeSplit: false,
|
|
51
|
-
rollupOptions: {
|
|
52
|
-
...rollupOptions,
|
|
53
|
-
input,
|
|
54
|
-
// important so that each page chunk and the index export things for each
|
|
55
|
-
// other
|
|
56
|
-
preserveEntrySignatures: 'allow-extension',
|
|
57
|
-
output: {
|
|
58
|
-
...rollupOptions === null || rollupOptions === void 0 ? void 0 : rollupOptions.output,
|
|
59
|
-
...(ssr
|
|
60
|
-
? {}
|
|
61
|
-
: {
|
|
62
|
-
chunkFileNames(chunk) {
|
|
63
|
-
// avoid ads chunk being intercepted by adblock
|
|
64
|
-
return /(?:Carbon|BuySell)Ads/.test(chunk.name)
|
|
65
|
-
? `assets/chunks/ui-custom.[hash].js`
|
|
66
|
-
: `assets/chunks/[name].[hash].js`;
|
|
67
|
-
},
|
|
68
|
-
manualChunks(id, ctx) {
|
|
69
|
-
// move known framework code into a stable chunk so that
|
|
70
|
-
// custom theme changes do not invalidate hash for all pages
|
|
71
|
-
if (id.includes('plugin-vue:export-helper')) {
|
|
72
|
-
return 'framework';
|
|
73
|
-
}
|
|
74
|
-
if (isEagerChunk(id, ctx) &&
|
|
75
|
-
(/@vue\/(runtime|shared|reactivity)/.test(id) ||
|
|
76
|
-
/vitepress\/dist\/client/.test(id))) {
|
|
77
|
-
return 'framework';
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
})
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
// minify with esbuild in MPA mode (for CSS)
|
|
84
|
-
minify: ssr ? (config.mpa ? 'esbuild' : false) : !process.env.DEBUG
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
let clientResult;
|
|
88
|
-
let serverResult;
|
|
89
|
-
const spinner = (0, ora_1.default)();
|
|
90
|
-
spinner.start('building client + server bundles...');
|
|
91
|
-
try {
|
|
92
|
-
;
|
|
93
|
-
[clientResult, serverResult] = await Promise.all([
|
|
94
|
-
config.mpa ? null : (0, vite_1.build)(resolveViteConfig(false)),
|
|
95
|
-
(0, vite_1.build)(resolveViteConfig(true))
|
|
96
|
-
]);
|
|
97
|
-
}
|
|
98
|
-
catch (e) {
|
|
99
|
-
spinner.stopAndPersist({
|
|
100
|
-
symbol: exports.failMark
|
|
101
|
-
});
|
|
102
|
-
throw e;
|
|
103
|
-
}
|
|
104
|
-
spinner.stopAndPersist({
|
|
105
|
-
symbol: exports.okMark
|
|
106
|
-
});
|
|
107
|
-
if (config.mpa) {
|
|
108
|
-
// in MPA mode, we need to copy over the non-js asset files from the
|
|
109
|
-
// server build since there is no client-side build.
|
|
110
|
-
for (const chunk of serverResult.output) {
|
|
111
|
-
if (!chunk.fileName.endsWith('.js')) {
|
|
112
|
-
const tempPath = path_1.default.resolve(config.tempDir, chunk.fileName);
|
|
113
|
-
const outPath = path_1.default.resolve(config.outDir, chunk.fileName);
|
|
114
|
-
await fs_extra_1.default.copy(tempPath, outPath);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
// also copy over public dir
|
|
118
|
-
const publicDir = path_1.default.resolve(config.srcDir, 'public');
|
|
119
|
-
if (fs_extra_1.default.existsSync(publicDir)) {
|
|
120
|
-
await fs_extra_1.default.copy(publicDir, config.outDir);
|
|
121
|
-
}
|
|
122
|
-
// build <script client> bundle
|
|
123
|
-
if (Object.keys(clientJSMap).length) {
|
|
124
|
-
clientResult = (await (0, buildMPAClient_1.buildMPAClient)(clientJSMap, config));
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return { clientResult, serverResult, pageToHashMap };
|
|
128
|
-
}
|
|
129
|
-
exports.bundle = bundle;
|
|
130
|
-
const cache = new Map();
|
|
131
|
-
/**
|
|
132
|
-
* Check if a module is statically imported by at least one entry.
|
|
133
|
-
*/
|
|
134
|
-
function isEagerChunk(id, { getModuleInfo }) {
|
|
135
|
-
if (id.includes('node_modules') &&
|
|
136
|
-
!/\.css($|\\?)/.test(id) &&
|
|
137
|
-
staticImportedByEntry(id, getModuleInfo, cache)) {
|
|
138
|
-
return 'vendor';
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
function staticImportedByEntry(id, getModuleInfo, cache, importStack = []) {
|
|
142
|
-
if (cache.has(id)) {
|
|
143
|
-
return cache.get(id);
|
|
144
|
-
}
|
|
145
|
-
if (importStack.includes(id)) {
|
|
146
|
-
// circular deps!
|
|
147
|
-
cache.set(id, false);
|
|
148
|
-
return false;
|
|
149
|
-
}
|
|
150
|
-
const mod = getModuleInfo(id);
|
|
151
|
-
if (!mod) {
|
|
152
|
-
cache.set(id, false);
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
if (mod.isEntry) {
|
|
156
|
-
cache.set(id, true);
|
|
157
|
-
return true;
|
|
158
|
-
}
|
|
159
|
-
const someImporterIs = mod.importers.some((importer) => staticImportedByEntry(importer, getModuleInfo, cache, importStack.concat(id)));
|
|
160
|
-
cache.set(id, someImporterIs);
|
|
161
|
-
return someImporterIs;
|
|
162
|
-
}
|
|
163
|
-
//# sourceMappingURL=bundle.js.map
|