https://github.com/markthree/vitepress-payload-extractor
Extracting duplicate payloads of meta information after vitepress wrapping | 提取 vitepress 打包后重复的有效元信息载荷
https://github.com/markthree/vitepress-payload-extractor
extractor optimization payload vitepress
Last synced: about 1 year ago
JSON representation
Extracting duplicate payloads of meta information after vitepress wrapping | 提取 vitepress 打包后重复的有效元信息载荷
- Host: GitHub
- URL: https://github.com/markthree/vitepress-payload-extractor
- Owner: markthree
- License: mit
- Created: 2023-06-24T07:36:09.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-02-28T05:23:23.000Z (about 2 years ago)
- Last Synced: 2025-02-13T10:47:54.774Z (about 1 year ago)
- Topics: extractor, optimization, payload, vitepress
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/vitepress-payload-extractor
- Size: 78.1 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# vitepress-payload-extractor
Extracting duplicate payloads of meta information after vitepress wrapping
This project has been `blocked`, because the `vitepress`
[1.0.0-beta.6](https://github.com/vuejs/vitepress/pull/2626) Supported
[metaChunk](https://github.com/vuejs/vitepress/pull/2626) option
## README 🦉
[简体中文](./README_CN.md) | English
## Motivation
Our team was using [vitepress](https://github.com/vuejs/vitepress) to build
large project documents, but as the number of documents grew, the meta
information payload of html pages became oversized, so I made this tool that
extracts the duplicate payload of pages and reduces the size of the package.
With it, our team's production documents went from `255MB` to `94.4MB`, which is
`37%` of the original size. If you are in the same dilemma, maybe you can try
this tool!
## Usage
### install
```shell
npm i vitepress-payload-extractor -D
```
### Configuration
Introduce the package in your `vitepress` configuration file
#### optimizeHtml
Extract duplicate meta information payloads during `vitepress` packaging and
compress `html`.
```ts
import { defineConfig } from "vitepress";
import { optimizeHtml } from "vitepress-payload-extractor";
export default defineConfig({
transformHtml(code) {
return optimizeHtml(code);
},
});
```
---
#### payloadExtraction
Extract duplicate meta-message payloads during `vitepress` packaging process
```ts
// .vitepress/config.js
import { defineConfig } from "vitepress";
import { payloadExtraction } from "vitepress-payload-extractor";
export default defineConfig({
transformHtml(code, _, ctx) {
return payloadExtraction(code, ctx.siteConfig.outDir);
},
});
```
#### minifyHtml
Compresses html and is compatible with vitepress
```ts
import { defineConfig } from "vitepress";
import { minifyHtml } from "vitepress-payload-extractor";
export default defineConfig({
transformHtml(code) {
return minifyHtml(code);
},
});
```
## Inspiration
- [DreaMinder · nuxt-payload-extractor](https://github.com/DreaMinder/nuxt-payload-extractor)
- [nuxt · issue · Payload extraction support](https://github.com/nuxt/nuxt/issues/14507)
## License
Made with [markthree](https://github.com/markthree)
Published under [MIT License](./LICENSE).