加入静态文件编译
This commit is contained in:
parent
0ae93f9bae
commit
40a181dbcb
@ -2,6 +2,66 @@ import { defineConfig } from "vite";
|
|||||||
import basicSsl from "@vitejs/plugin-basic-ssl";
|
import basicSsl from "@vitejs/plugin-basic-ssl";
|
||||||
import vue from "@vitejs/plugin-vue";
|
import vue from "@vitejs/plugin-vue";
|
||||||
import { VitePWA } from "vite-plugin-pwa";
|
import { VitePWA } from "vite-plugin-pwa";
|
||||||
|
import {
|
||||||
|
copyFileSync,
|
||||||
|
mkdirSync,
|
||||||
|
writeFileSync,
|
||||||
|
readdirSync,
|
||||||
|
cpSync,
|
||||||
|
} from "node:fs";
|
||||||
|
|
||||||
|
const siteUrl = "https://explorer.kuraa.cc";
|
||||||
|
|
||||||
|
function generateStaticFiles() {
|
||||||
|
return {
|
||||||
|
name: "generate-static-files",
|
||||||
|
closeBundle() {
|
||||||
|
const aboutDir = new URL("./dist/about/", import.meta.url);
|
||||||
|
mkdirSync(aboutDir, { recursive: true });
|
||||||
|
cpSync(
|
||||||
|
new URL("./static/", import.meta.url),
|
||||||
|
new URL("./dist/static/", import.meta.url),
|
||||||
|
{
|
||||||
|
recursive: true,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
const files = readdirSync(new URL("./readme/", import.meta.url));
|
||||||
|
files.forEach((file) => {
|
||||||
|
copyFileSync(
|
||||||
|
new URL(`./readme/${file}`, import.meta.url),
|
||||||
|
new URL(`./dist/about/${file}`, import.meta.url),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
const lastmod = new Date().toISOString().slice(0, 10);
|
||||||
|
const sitemap = `<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
<url>
|
||||||
|
<loc>${siteUrl}/</loc>
|
||||||
|
<lastmod>${lastmod}</lastmod>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
<priority>1.0</priority>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>${siteUrl}/about/</loc>
|
||||||
|
<lastmod>${lastmod}</lastmod>
|
||||||
|
<changefreq>monthly</changefreq>
|
||||||
|
<priority>0.8</priority>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
||||||
|
`;
|
||||||
|
const robots = `User-agent: *
|
||||||
|
Allow: /
|
||||||
|
|
||||||
|
Sitemap: ${siteUrl}/sitemap.xml
|
||||||
|
`;
|
||||||
|
|
||||||
|
writeFileSync(new URL("./dist/sitemap.xml", import.meta.url), sitemap);
|
||||||
|
writeFileSync(new URL("./dist/robots.txt", import.meta.url), robots);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// https://vitejs.dev/config/
|
// https://vitejs.dev/config/
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
base: "./",
|
base: "./",
|
||||||
@ -12,6 +72,7 @@ export default defineConfig({
|
|||||||
plugins: [
|
plugins: [
|
||||||
vue(),
|
vue(),
|
||||||
basicSsl(),
|
basicSsl(),
|
||||||
|
generateStaticFiles(),
|
||||||
VitePWA({
|
VitePWA({
|
||||||
registerType: "autoUpdate",
|
registerType: "autoUpdate",
|
||||||
manifest: {
|
manifest: {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user