@fchc8/vite-plugin-multi-page
Version:
A powerful Vite plugin for building multi-page applications with smart file routing and multi-strategy builds
120 lines (118 loc) • 19 kB
JavaScript
;var oe=Object.create;var I=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var ge=Object.getPrototypeOf,ce=Object.prototype.hasOwnProperty;var pe=(t,e)=>{for(var i in e)I(t,i,{get:e[i],enumerable:!0})},z=(t,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of le(e))!ce.call(t,n)&&n!==i&&I(t,n,{get:()=>e[n],enumerable:!(s=ae(e,n))||s.enumerable});return t};var P=(t,e,i)=>(i=t!=null?oe(ge(t)):{},z(e||!t||!t.__esModule?I(i,"default",{value:t,enumerable:!0}):i,t)),fe=t=>z(I({},"__esModule",{value:!0}),t);var Ce={};pe(Ce,{cleanViteOutputDirectory:()=>X,default:()=>xe,defineConfig:()=>ne,defineConfigTransform:()=>re,generateBuildConfig:()=>L,getAvailableStrategies:()=>Z,getViteOutputDirectory:()=>W,mergeWithDefaults:()=>R,viteMultiPage:()=>se});module.exports=fe(Ce);var ie=require("vite");var C=P(require("path")),j=P(require("fs")),q=require("glob");var S=P(require("path"));function _(t,e,i,s){let n=[],o=new Map,c=e.replace(/\/\*.*$/,"");(!c||c===e)&&(c=S.dirname(e.split("*")[0]));let l=[];for(let r of t){if(i.includes(r))continue;let a=r.replace(/\\/g,"/"),g=c.replace(/\\/g,"/"),f=S.posix.relative(g,a).split("/");if(f.length===1){let u=f[0],m=S.posix.basename(u,S.posix.extname(u));l.push({name:m,file:r,priority:1})}else if(f.length>=2){let u=S.posix.basename(a,S.posix.extname(a)),m=f[0];u==="main"&&l.push({name:m,file:r,priority:2})}}for(let r of l){let a=o.get(r.name);a?r.priority>a.priority&&o.set(r.name,{file:r.file,priority:r.priority}):o.set(r.name,{file:r.file,priority:r.priority})}for(let[r,{file:a}]of o.entries())n.push({name:r,file:a});return n}function J(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function N(t){return(...e)=>{t&&console.log("[vite-plugin-multi-page]",...e)}}function $(t,e,i){if(!t)return null;if(typeof t=="function")return t(e);for(let[s,n]of Object.entries(t)){if(s===e.pageName)return i(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${e.pageName}:`,n),n;if(n.match&&(Array.isArray(n.match)?n.match:[n.match]).some(l=>U(l,e.pageName)||U(l,e.relativePath)||U(l,e.filePath)))return i(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${n.match}):`,n),{...n,match:void 0};if(U(s,e.pageName))return i(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${s}):`,n),n}return null}function U(t,e){let i=t.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${i}$`).test(e)}function de(t,e,i){try{let s=q.glob.sync(e.entry,{cwd:process.cwd()}),n=_(s,e.entry,e.exclude,i);if(n.length===0){i("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6");return}let o=e.devStrategy||t.config.__cliStrategy||t.config.strategy;o&&(i(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${o}`),n=n.filter(c=>{let l={pageName:c.name,filePath:c.file,relativePath:C.relative(process.cwd(),c.file),strategy:void 0,isMatched:!1},r=$(e.pageConfigs,l,i),a=(r==null?void 0:r.strategy)||"default";return o==="default"?a==="default":a===o}),i(`\u7B56\u7565 "${o}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${n.map(c=>c.name).join(", ")||"\u65E0"}`)),i("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",n),t.middlewares.use(async(c,l,r)=>{try{let g=(c.url||"").split("?")[0];if(g==="/"){let u=me(n,e,i);l.statusCode=200,l.setHeader("Content-Type","text/html"),l.end(u);return}if(g.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!g.endsWith(".html")||g.startsWith("/@")||g.includes("__vite")||g.startsWith("/node_modules"))return r();let p="";if(g.endsWith(".html"))p=C.basename(g,".html");else if(g.startsWith("/")){let u=g.substring(1);if(n.find(m=>m.name===u))p=u;else{let m=u.split("/");if(m.length>1){let E=m[0];n.find(d=>d.name===E)&&(p=E,i(`History \u8DEF\u7531\u5339\u914D: ${g} -> ${E}`))}}}if(!p)return r();let f=n.find(u=>u.name===p);return f?ue(l,f,e,i):r()}catch(a){i(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${a}`),r(a)}}),i("\u5F00\u53D1\u670D\u52A1\u5668\u914D\u7F6E\u5B8C\u6210")}catch(s){throw i(`\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668\u5931\u8D25: ${s}`),s}}function ue(t,e,i,s){var g;let n={pageName:e.name,filePath:e.file,relativePath:C.relative(process.cwd(),e.file),strategy:void 0,isMatched:!1},o=$(i.pageConfigs,n,s);if(o!=null&&o.strategy)n.strategy=o.strategy;else if((g=i.appliedStrategies)!=null&&g.has(e.name)){let p=i.appliedStrategies.get(e.name);p&&(n.strategy=p)}let c="",l=C.resolve(process.cwd(),`${e.name}.html`);if(j.existsSync(l)?c=l:o!=null&&o.template?c=C.resolve(process.cwd(),o.template):c=C.resolve(process.cwd(),i.template),!j.existsSync(c)){t.statusCode=404,t.end("Template not found");return}let r=j.readFileSync(c,"utf-8");if(r.includes(i.placeholder)){let p=r;if(r=r.split(i.placeholder).join(`/${e.file}`),r===p){let f=J(i.placeholder),u=new RegExp(f,"g");r=p.replace(u,`/${e.file}`),r===p&&(r=p.replace(/\{\{ENTRY_FILE\}\}/g,`/${e.file}`))}}if(o!=null&&o.define){let p=Object.entries(o.define).map(([f,u])=>{let m=typeof u=="string"?`"${u}"`:JSON.stringify(u);return`window.${f} = ${m};`}).join(`
`);p&&(r=r.replace(/<\/head>/i,`<script type="text/javascript">
${p}
</script>
</head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(r)}var Q=de;function me(t,e,i){try{let s=t.map(n=>{var a;let o={pageName:n.name,filePath:n.file,relativePath:C.relative(process.cwd(),n.file),strategy:void 0,isMatched:!1},c=$(e.pageConfigs,o,i),l="default";if(c!=null&&c.strategy)l=c.strategy;else if((a=e.appliedStrategies)!=null&&a.has(n.name)){let g=e.appliedStrategies.get(n.name);g&&(l=g)}let r=l!=="default"?`<span class="badge">${l}</span>`:"";return`
<div class="page-item">
<a href="${n.name}.html" class="page-link">
${n.name}${r}
</a>
<div class="page-path">${n.file}</div>
</div>`}).join("");return`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>\u591A\u9875\u9762\u5E94\u7528\u7D22\u5F15</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
background-color: #f5f5f7;
}
h1 {
font-size: 24px;
margin-bottom: 20px;
color: #111;
}
.page-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 16px;
}
.page-item {
background-color: white;
border-radius: 8px;
padding: 16px;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
transition: transform 0.2s, box-shadow 0.2s;
}
.page-item:hover {
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.page-link {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 18px;
font-weight: 500;
color: #0066cc;
text-decoration: none;
margin-bottom: 8px;
}
.page-path {
font-size: 14px;
color: #666;
word-break: break-all;
}
.badge {
display: inline-block;
font-size: 12px;
padding: 2px 8px;
border-radius: 12px;
background-color: #e6f2ff;
color: #0066cc;
margin-left: 8px;
}
.stats {
margin-bottom: 20px;
font-size: 14px;
color: #666;
}
</style>
</head>
<body>
<h1>\u591A\u9875\u9762\u5E94\u7528\u7D22\u5F15</h1>
<div class="stats">
\u627E\u5230 ${t.length} \u4E2A\u9875\u9762
</div>
<div class="page-list">
${s}
</div>
</body>
</html>
`}catch(s){return i(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${s}`),`
<!DOCTYPE html>
<html>
<head>
<title>\u9519\u8BEF</title>
</head>
<body>
<h1>\u751F\u6210\u7D22\u5F15\u9875\u65F6\u53D1\u751F\u9519\u8BEF</h1>
<p>${s}</p>
</body>
</html>
`}}var K=require("vite"),G=require("glob"),h=P(require("path")),b=P(require("fs"));function L(t){var g;let{entry:e="src/pages/*/main.{ts,js}",exclude:i=[],template:s="index.html",placeholder:n="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:o={},pageConfigs:c={},forceBuildStrategy:l}=t,r=N(!0),a={};try{let p=G.glob.sync(e,{cwd:process.cwd()}),f=_(p,e,i,r);if(f.length===0)return r("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let u=new Map,m=new Map;for(let d of f){let y={pageName:d.name,filePath:d.file,relativePath:h.relative(process.cwd(),d.file)},x=$(c,y,r),v=(x==null?void 0:x.strategy)||"default";u.set(d.name,v),m.has(v)||m.set(v,[]),(g=m.get(v))==null||g.push(d.name)}if(r(`\u{1F4C4} \u53D1\u73B0 ${f.length} \u4E2A\u9875\u9762: ${f.map(d=>d.name).join(", ")}`),l){let d=m.get(l)||[];if(d.length===0)return r(`\u8B66\u544A: \u7B56\u7565 "${l}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};r(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${l}, \u9875\u9762: ${d.join(", ")}`);let y=V(l,d,f,o[l],c,s,n,r);return a[l]=y,a}for(let[d,y]of m){if(y.length===0)continue;let x=o[d]||{},v=V(d,y,f,x,c,s,n,r);a[d]=v}if(Object.keys(a).length===0){r("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let d=f.map(x=>x.name),y=V("default",d,f,{},c,s,n,r);a.default=y}let E=Object.keys(a);return r(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${E.join(", ")}`),a}catch(p){throw r("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",p),p}}function V(t,e,i,s,n,o,c,l){let r={},a=[],g={};for(let u of e){let m=i.find(B=>B.name===u);if(!m)continue;let E={pageName:u,filePath:m.file,relativePath:h.relative(process.cwd(),m.file),strategy:t},d=$(n,E,l);d!=null&&d.define&&Object.assign(g,d.define);let y=o,x=`${u}.html`;b.existsSync(h.resolve(process.cwd(),x))?y=x:d!=null&&d.template&&(y=d.template);let v=h.resolve(process.cwd(),y);if(!b.existsSync(v)){l(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${y}`);continue}let D=b.readFileSync(v,"utf-8");if(D.includes(c)){let B=`./${m.file}`;D=D.replace(new RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),B)}let k=h.resolve(process.cwd(),`.temp.mp.${u}.html`);b.writeFileSync(k,D),a.push(k),r[u]=k}let p={base:"./",build:{outDir:`dist/${t}`,rollupOptions:{input:r,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},emptyOutDir:!1},define:{}},f=p;return s&&(f=(0,K.mergeConfig)(p,s)),Object.keys(g).length>0&&(f.define={...f.define,...g}),f.build||(f.build={}),f.build.rollupOptions||(f.build.rollupOptions={}),f.build.rollupOptions.input=r,f.build.emptyOutDir=!1,l(`\u7B56\u7565 "${t}" - ${e.length} \u4E2A\u9875\u9762`),f}function W(t=[]){let e=t.findIndex(s=>s==="--outDir");if(e!==-1&&e+1<t.length){let s=t[e+1];return h.resolve(process.cwd(),s)}let i=t.find(s=>s.startsWith("--outDir="));if(i){let s=i.split("=")[1];return h.resolve(process.cwd(),s)}return h.resolve(process.cwd(),"dist")}function X(t=[]){let e=W(t),i=N(!0);try{b.existsSync(e)&&(b.rmSync(e,{recursive:!0,force:!0}),i(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${h.relative(process.cwd(),e)}`))}catch(s){i(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,s)}}function Z(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:i=[],pageConfigs:s={}}=t,n=N(!1),o=new Set,c=G.glob.sync(e,{cwd:process.cwd()}),l=_(c,e,i,n);if(l.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let r of l){let a={pageName:r.name,filePath:r.file,relativePath:h.relative(process.cwd(),r.file)},g=$(s,a,n),p=(g==null?void 0:g.strategy)||"default";o.add(p)}return Array.from(o).sort()}catch(r){return n("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",r),["default"]}}var T=P(require("fs")),O=P(require("path")),ee=require("url"),M=require("module"),te=["multipage.config.js","multipage.config.mjs","multipage.config.ts"];function Y(){for(let t of te){let e=O.resolve(process.cwd(),t);if(T.existsSync(e))return!0}return!1}async function H(t){let e=await he();if(e){let i=e(t);return i||{}}return null}async function ye(t){if(t.endsWith(".ts"))try{let e=await T.promises.readFile(t,"utf-8"),i;try{i=await import("esbuild")}catch{throw console.error(`
\u274C \u65E0\u6CD5\u52A0\u8F7D TypeScript \u914D\u7F6E\u6587\u4EF6\uFF0C\u56E0\u4E3A\u627E\u4E0D\u5230 esbuild \u4F9D\u8D56\u3002`),console.error(`
\u{1F4A1} \u8BF7\u9009\u62E9\u4EE5\u4E0B\u89E3\u51B3\u65B9\u6848\u4E4B\u4E00\uFF1A`),console.error(' 1. \u5B89\u88C5 esbuild (peerDependency)\uFF1Anpm install esbuild@">=0.19.3" --save-dev'),console.error(" 2. \u6216\u8005\u5982\u679C\u4F7F\u7528 Vite \u9879\u76EE\uFF0Cesbuild \u901A\u5E38\u5DF2\u5B89\u88C5\uFF0C\u8BF7\u68C0\u67E5\u7248\u672C\u662F\u5426 >=0.19.3"),console.error(" 3. \u4F7F\u7528 JavaScript \u914D\u7F6E\u6587\u4EF6\uFF1A\u5C06 multipage.config.ts \u91CD\u547D\u540D\u4E3A multipage.config.js"),console.error(` 4. \u4F7F\u7528 ESM \u914D\u7F6E\u6587\u4EF6\uFF1A\u5C06 multipage.config.ts \u91CD\u547D\u540D\u4E3A multipage.config.mjs
`),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${O.basename(t)}`)}let s=await i.transform(e,{loader:"ts",format:"cjs",target:"node16",sourcemap:!1}),n=new M.Module(t);return n.filename=t,n.paths=M.Module._nodeModulePaths(O.dirname(t)),n._compile(s.code,t),n.exports}catch(e){if(e instanceof Error&&e.message.includes("\u9700\u8981 esbuild \u4F9D\u8D56"))throw e;console.warn("esbuild \u8F6C\u8BD1\u5931\u8D25\uFF0C\u5C1D\u8BD5\u7B80\u5355\u8F6C\u6362:",e);let s=(await T.promises.readFile(t,"utf-8")).replace(/export\s+default\s+/,"module.exports = ").replace(/import\s+.*?from\s+['"][^'"]*['"];?\s*/g,"").replace(/:\s*[^=,})\]]+/g,""),n=new M.Module(t);return n.filename=t,n.paths=M.Module._nodeModulePaths(O.dirname(t)),n._compile(s,t),n.exports}if(t.endsWith(".js")||t.endsWith(".mjs"))return import(`${(0,ee.pathToFileURL)(t).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${t}`)}async function he(){let t=process.cwd();for(let e of te){let i=O.resolve(t,e);if(T.existsSync(i))try{let s=await ye(i),n=s.default||s;if(typeof n=="function")return n;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${e} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(s){e.endsWith(".ts")?(console.error(`\u52A0\u8F7DTypeScript\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,s),console.log("\u63D0\u793A\uFF1A\u786E\u4FDD\u4F60\u7684\u9879\u76EE\u652F\u6301TypeScript\uFF0C\u6216\u8005\u4F7F\u7528 .js/.mjs \u914D\u7F6E\u6587\u4EF6")):console.error(`\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,s)}}return null}var F={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,strategies:{default:{}},pageConfigs:{}};function R(t){if(!t)return{...F};let e=t.strategies??t.buildStrategies??F.strategies;return{entry:t.entry??F.entry,exclude:t.exclude??F.exclude,template:t.template??F.template,placeholder:t.placeholder??F.placeholder,debug:t.debug??F.debug,strategies:e,pageConfigs:t.pageConfigs??F.pageConfigs,__forceBuildStrategy:t.__forceBuildStrategy}}var A=P(require("fs"));function ne(t){return typeof t=="function"?t:()=>t}function re(t){return t}function se(t){let e,i=[],s=()=>{};return{name:"vite-multi-page",async configResolved(n){let o=null;Y()&&(o=await H({mode:n.command==="serve"?"development":"production",command:n.command,isCLI:!1}));let c=R(o);e=t?t(c,{mode:n.command==="serve"?"development":"production",command:n.command,isCLI:!1}):c,s=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{},s("Vite\u914D\u7F6E\u5DF2\u89E3\u6790, \u4F7F\u7528\u914D\u7F6E:",{strategies:Object.keys(e.strategies||{}),entry:e.entry})},async config(n,{command:o}){var c;if(o==="serve"){let l=process.argv,r=l.find(a=>a.startsWith("--strategy="));if(r){let a=r.split("=")[1];a&&(process.env.VITE_MULTI_PAGE_STRATEGY=a)}else{let a=l.findIndex(g=>g==="--strategy");if(a!==-1&&a+1<l.length){let g=l[a+1];process.env.VITE_MULTI_PAGE_STRATEGY=g}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(o==="build"){if(!e){let g=null;Y()&&(g=await H({mode:"production",command:"build",isCLI:!1}));let p=R(g);e=t?t(p,{mode:"production",command:"build",isCLI:!1}):p,s=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{}}s("\u914D\u7F6E\u6784\u5EFA\u6A21\u5F0F");let l=process.env.VITE_MULTI_PAGE_STRATEGY,r=L({entry:e.entry||"src/pages/**/*.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",strategies:e.strategies||{},pageConfigs:e.pageConfigs||{},forceBuildStrategy:l}),a=Object.keys(r)[0];if(a&&r[a]){s(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${a}`);let g=r[a],p=(0,ie.mergeConfig)(n,g);Object.assign(n,p),s(`\u5DF2\u5E94\u7528\u7B56\u7565 "${a}" \u7684\u914D\u7F6E:`,{build:!!g.build,define:!!g.define,plugins:((c=g.plugins)==null?void 0:c.length)||0})}else throw s("\u672A\u627E\u5230\u53EF\u7528\u7684\u6784\u5EFA\u7B56\u7565\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u914D\u7F6E"),new Error(`\u274C \u6784\u5EFA\u5931\u8D25: \u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565
\u53EF\u80FD\u7684\u539F\u56E0\uFF1A
1. \u914D\u7F6E\u6587\u4EF6\u8FD4\u56DE\u7A7A\u5BF9\u8C61 {}
2. \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6
3. \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728
4. \u672A\u914D\u7F6E strategies \u5BF9\u8C61
\u6700\u5C0F\u914D\u7F6E\u793A\u4F8B\uFF1A
export default () => ({
entry: "src/pages/**/*.{ts,js}",
template: "index.html",
strategies: {
default: {}
}
});`)}},configureServer(n){if(n.config.command==="serve"){s("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let o=process.env.VITE_MULTI_PAGE_STRATEGY||"default";s(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${o}`),Q(n,{entry:e.entry||"src/pages/**/*.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",strategies:e.strategies||{},pageConfigs:e.pageConfigs||{},devStrategy:o},s)}},writeBundle(){},buildEnd(){i.length>0&&(s(`\u6E05\u7406 ${i.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),i.forEach(n=>{try{A.existsSync(n)&&(A.unlinkSync(n),s(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${n}`))}catch(o){s(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${n}`,o)}}),i.length=0)}}}var xe=se;0&&(module.exports={cleanViteOutputDirectory,defineConfig,defineConfigTransform,generateBuildConfig,getAvailableStrategies,getViteOutputDirectory,mergeWithDefaults,viteMultiPage});
//# sourceMappingURL=index.js.map