@fchc8/vite-plugin-multi-page
Version:
A powerful Vite plugin for building multi-page applications with smart file routing and multi-strategy builds
32 lines (28 loc) • 20 kB
JavaScript
#!/usr/bin/env node
"use strict";var ae=Object.create;var R=Object.defineProperty;var ce=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var fe=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty;var j=(e,t)=>()=>(e&&(t=e(e=0)),t);var A=(e,t)=>{for(var n in t)R(e,n,{get:t[n],enumerable:!0})},z=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of le(t))!pe.call(e,r)&&r!==n&&R(e,r,{get:()=>t[r],enumerable:!(o=ce(t,r))||o.enumerable});return e};var P=(e,t,n)=>(n=e!=null?ae(fe(e)):{},z(t||!e||!e.__esModule?R(n,"default",{value:e,enumerable:!0}):n,e)),ge=e=>z(R({},"__esModule",{value:!0}),e);var x=j(()=>{"use strict"});function U(e,t,n,o){let r=[],u=new Map,y=t.replace(/\/\*.*$/,"");(!y||y===t)&&(y=O.dirname(t.split("*")[0]));let c=[];for(let s of e){if(n.includes(s))continue;let l=s.replace(/\\/g,"/"),g=y.replace(/\\/g,"/"),f=O.posix.relative(g,l).split("/");if(f.length===1){let h=f[0],i=O.posix.basename(h,O.posix.extname(h));c.push({name:i,file:s,priority:1})}else if(f.length>=2){let h=O.posix.basename(l,O.posix.extname(l)),i=f[0];h==="main"&&c.push({name:i,file:s,priority:2})}}for(let s of c){let l=u.get(s.name);l?s.priority>l.priority&&u.set(s.name,{file:s.file,priority:s.priority}):u.set(s.name,{file:s.file,priority:s.priority})}for(let[s,{file:l}]of u.entries())r.push({name:s,file:l});return r}var O,J=j(()=>{"use strict";x();O=P(require("path"))});function k(e,t,n){if(!e)return null;if(typeof e=="function")return e(t);for(let[o,r]of Object.entries(e)){if(o===t.pageName)return n(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${t.pageName}:`,r),r;if(r.match&&(Array.isArray(r.match)?r.match:[r.match]).some(c=>L(c,t.pageName)||L(c,t.relativePath)||L(c,t.filePath)))return n(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${t.pageName} (\u6A21\u5F0F: ${r.match}):`,r),{...r,match:void 0};if(L(o,t.pageName))return n(`Glob\u5339\u914D\u9875\u9762 ${t.pageName} (\u6A21\u5F0F: ${o}):`,r),r}return null}function L(e,t){let n=e.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${n}$`).test(t)}var K=j(()=>{"use strict";x()});function M(e){return(...t)=>{e&&console.log("[vite-plugin-multi-page]",...t)}}var Q=j(()=>{"use strict";x()});var q={};A(q,{cleanViteOutputDirectory:()=>me,discoverPages:()=>de,generateBuildConfig:()=>ue,getAvailableStrategies:()=>he,getViteOutputDirectory:()=>W});function ue(e){var g;let{entry:t="src/pages/*/main.{ts,js}",exclude:n=[],template:o="index.html",placeholder:r="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:u={},pageConfigs:y={},forceBuildStrategy:c}=e,s=M(!0),l={};try{let p=I.glob.sync(t,{cwd:process.cwd()}),f=U(p,t,n,s);if(f.length===0)return s("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let h=new Map,i=new Map;for(let m of f){let b={pageName:m.name,filePath:m.file,relativePath:v.relative(process.cwd(),m.file)},$=k(y,b,s),S=($==null?void 0:$.strategy)||"default";h.set(m.name,S),i.has(S)||i.set(S,[]),(g=i.get(S))==null||g.push(m.name)}if(s(`\u{1F4C4} \u53D1\u73B0 ${f.length} \u4E2A\u9875\u9762: ${f.map(m=>m.name).join(", ")}`),c){let m=i.get(c)||[];if(m.length===0)return s(`\u8B66\u544A: \u7B56\u7565 "${c}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};s(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${c}, \u9875\u9762: ${m.join(", ")}`);let b=Y(c,m,f,u[c],y,o,r,s);return l[c]=b,l}for(let[m,b]of i){if(b.length===0)continue;let $=u[m]||{},S=Y(m,b,f,$,y,o,r,s);l[m]=S}if(Object.keys(l).length===0){s("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let m=f.map($=>$.name),b=Y("default",m,f,{},y,o,r,s);l.default=b}let w=Object.keys(l);return s(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${w.join(", ")}`),l}catch(p){throw s("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",p),p}}function Y(e,t,n,o,r,u,y,c){let s={},l=[],g={};for(let h of t){let i=n.find(H=>H.name===h);if(!i)continue;let w={pageName:h,filePath:i.file,relativePath:v.relative(process.cwd(),i.file),strategy:e},m=k(r,w,c);m!=null&&m.define&&Object.assign(g,m.define);let b=u,$=`${h}.html`;C.existsSync(v.resolve(process.cwd(),$))?b=$:m!=null&&m.template&&(b=m.template);let S=v.resolve(process.cwd(),b);if(!C.existsSync(S)){c(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${b}`);continue}let E=C.readFileSync(S,"utf-8");if(E.includes(y)){let H=`./${i.file}`;E=E.replace(new RegExp(y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),H)}let G=v.resolve(process.cwd(),`.temp.mp.${h}.html`);C.writeFileSync(G,E),l.push(G),s[h]=G}let p={base:"./",build:{outDir:`dist/${e}`,rollupOptions:{input:s,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},emptyOutDir:!1},define:{}},f=p;return o&&(f=(0,X.mergeConfig)(p,o)),Object.keys(g).length>0&&(f.define={...f.define,...g}),f.build||(f.build={}),f.build.rollupOptions||(f.build.rollupOptions={}),f.build.rollupOptions.input=s,f.build.emptyOutDir=!1,c(`\u7B56\u7565 "${e}" - ${t.length} \u4E2A\u9875\u9762`),f}function W(e=[]){let t=e.findIndex(o=>o==="--outDir");if(t!==-1&&t+1<e.length){let o=e[t+1];return v.resolve(process.cwd(),o)}let n=e.find(o=>o.startsWith("--outDir="));if(n){let o=n.split("=")[1];return v.resolve(process.cwd(),o)}return v.resolve(process.cwd(),"dist")}function me(e=[]){let t=W(e),n=M(!0);try{C.existsSync(t)&&(C.rmSync(t,{recursive:!0,force:!0}),n(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${v.relative(process.cwd(),t)}`))}catch(o){n(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${t}`,o)}}function de(e){let{entry:t="src/pages/*/main.{ts,js}",exclude:n=[]}=e,o=M(!0);try{let r=I.glob.sync(t,{cwd:process.cwd()});return U(r,t,n,o)}catch(r){throw o("\u53D1\u73B0\u9875\u9762\u5931\u8D25:",r),r}}function he(e){let{entry:t="src/pages/*/main.{ts,js}",exclude:n=[],pageConfigs:o={}}=e,r=M(!1),u=new Set,y=I.glob.sync(t,{cwd:process.cwd()}),c=U(y,t,n,r);if(c.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${t}`);try{for(let s of c){let l={pageName:s.name,filePath:s.file,relativePath:v.relative(process.cwd(),s.file)},g=k(o,l,r),p=(g==null?void 0:g.strategy)||"default";u.add(p)}return Array.from(u).sort()}catch(s){return r("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",s),["default"]}}var X,I,v,C,B=j(()=>{"use strict";x();X=require("vite"),I=require("glob"),v=P(require("path")),C=P(require("fs"));J();K();Q()});var te={};A(te,{hasCustomConfig:()=>ye,loadUserConfig:()=>be});function ye(){for(let e of ee){let t=D.resolve(process.cwd(),e);if(N.existsSync(t))return!0}return!1}async function be(e){let t=await $e();if(t){let n=t(e);return n||{}}return null}async function we(e){if(e.endsWith(".ts"))try{let t=await N.promises.readFile(e,"utf-8"),n;try{n=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: ${D.basename(e)}`)}let o=await n.transform(t,{loader:"ts",format:"cjs",target:"node16",sourcemap:!1}),r=new T.Module(e);return r.filename=e,r.paths=T.Module._nodeModulePaths(D.dirname(e)),r._compile(o.code,e),r.exports}catch(t){if(t instanceof Error&&t.message.includes("\u9700\u8981 esbuild \u4F9D\u8D56"))throw t;console.warn("esbuild \u8F6C\u8BD1\u5931\u8D25\uFF0C\u5C1D\u8BD5\u7B80\u5355\u8F6C\u6362:",t);let o=(await N.promises.readFile(e,"utf-8")).replace(/export\s+default\s+/,"module.exports = ").replace(/import\s+.*?from\s+['"][^'"]*['"];?\s*/g,"").replace(/:\s*[^=,})\]]+/g,""),r=new T.Module(e);return r.filename=e,r.paths=T.Module._nodeModulePaths(D.dirname(e)),r._compile(o,e),r.exports}if(e.endsWith(".js")||e.endsWith(".mjs"))return import(`${(0,Z.pathToFileURL)(e).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${e}`)}async function $e(){let e=process.cwd();for(let t of ee){let n=D.resolve(e,t);if(N.existsSync(n))try{let o=await we(n),r=o.default||o;if(typeof r=="function")return r;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${t} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(o){t.endsWith(".ts")?(console.error(`\u52A0\u8F7DTypeScript\u914D\u7F6E\u6587\u4EF6 ${t} \u5931\u8D25:`,o),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 ${t} \u5931\u8D25:`,o)}}return null}var N,D,Z,T,ee,se=j(()=>{"use strict";x();N=P(require("fs")),D=P(require("path")),Z=require("url"),T=require("module"),ee=["multipage.config.js","multipage.config.mjs","multipage.config.ts"]});var ne={};A(ne,{DEFAULT_CONFIG:()=>F,isEmptyConfig:()=>Se,mergeWithDefaults:()=>xe});function xe(e){if(!e)return{...F};let t=e.strategies??e.buildStrategies??F.strategies;return{entry:e.entry??F.entry,exclude:e.exclude??F.exclude,template:e.template??F.template,placeholder:e.placeholder??F.placeholder,debug:e.debug??F.debug,strategies:t,pageConfigs:e.pageConfigs??F.pageConfigs,__forceBuildStrategy:e.__forceBuildStrategy}}function Se(e){if(Object.keys(e).length===0)return!0;let t=e.entry&&e.entry!==F.entry,n=e.strategies&&Object.keys(e.strategies).length>0||e.buildStrategies&&Object.keys(e.buildStrategies).length>0,o=e.pageConfigs&&(typeof e.pageConfigs=="function"||Object.keys(e.pageConfigs).length>0);return!t&&!n&&!o}var F,oe=j(()=>{"use strict";x();F={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,strategies:{default:{}},pageConfigs:{}}});var Ee={};A(Ee,{buildAll:()=>ie});module.exports=ge(Ee);x();var re=require("child_process"),a=P(require("fs")),d=P(require("path")),V=P(require("glob"));B();function ve(){let e=process.argv.slice(2),t=[],n=!1,o,r,u=3,y=!0;for(let c=0;c<e.length;c++){let s=e[c];if(s==="--debug")n=!0;else if(s==="--cwd")o=e[++c];else if(s==="--strategy")r=e[++c].split(",").map(g=>g.trim());else if(s==="--concurrency"){let l=e[++c];u=parseInt(l,10),(isNaN(u)||u<1)&&(console.error("\u274C \u5E76\u53D1\u6570\u5FC5\u987B\u662F\u5927\u4E8E0\u7684\u6574\u6570"),process.exit(1))}else s==="--flatten"?y=!0:s==="--no-flatten"?y=!1:s==="--help"||s==="-h"?(console.log(`
\u4F7F\u7528\u65B9\u6CD5: vite-mp [\u9009\u9879]
\u9009\u9879:
--debug \u542F\u7528\u8C03\u8BD5\u6A21\u5F0F
--cwd <dir> \u6307\u5B9A\u5DE5\u4F5C\u76EE\u5F55
--strategy <list> \u6307\u5B9A\u6784\u5EFA\u7B56\u7565\uFF0C\u652F\u6301\u9017\u53F7\u5206\u9694\u591A\u4E2A\u7B56\u7565
--concurrency <num> \u5E76\u53D1\u6784\u5EFA\u6570\uFF08\u9ED8\u8BA4\uFF1A3\uFF09
--flatten \u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784\uFF08\u9ED8\u8BA4\u542F\u7528\uFF09
--no-flatten \u7981\u7528\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784
--help, -h \u663E\u793A\u5E2E\u52A9\u4FE1\u606F
\u5176\u4ED6\u6240\u6709\u53C2\u6570\u5C06\u4F20\u9012\u7ED9 vite build \u547D\u4EE4
\u793A\u4F8B:
vite-mp # \u6784\u5EFA\u6240\u6709\u7B56\u7565\uFF08\u9ED8\u8BA4\u6241\u5E73\u5316\uFF09
vite-mp --strategy mobile # \u53EA\u6784\u5EFAmobile\u7B56\u7565
vite-mp --strategy mobile,tablet # \u6784\u5EFAmobile\u548Ctablet\u7B56\u7565
vite-mp --no-flatten # \u7981\u7528\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784
vite-mp --concurrency 2 # \u8BBE\u7F6E\u5E76\u53D1\u6570\u4E3A2
vite-mp --debug # \u542F\u7528\u8C03\u8BD5\u6A21\u5F0F
vite-mp --cwd example # \u5728example\u76EE\u5F55\u8FD0\u884C
vite-mp --mode production --debug # \u4F20\u9012\u989D\u5916\u53C2\u6570\u7ED9vite
`),process.exit(0)):s!=="build"&&t.push(s)}return{viteBuildArgs:t,debug:n,cwd:o,strategies:r,concurrency:u,flatten:y}}async function Ce(){let{loadUserConfig:e,hasCustomConfig:t}=await Promise.resolve().then(()=>(se(),te)),{mergeWithDefaults:n}=await Promise.resolve().then(()=>(oe(),ne)),o=null;return t()&&(o=await e({mode:"production",command:"build",isCLI:!0}),o||console.log("\u274C \u914D\u7F6E\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25")),n(o)}function Fe(e,t,n){return new Promise(o=>{var l;let r=n?console.log.bind(console,`[${e}]`):()=>{},u={...process.env,VITE_MULTI_PAGE_STRATEGY:e},y=["build",...t],c=(0,re.spawn)("npx",["vite",...y],{stdio:n?"inherit":"pipe",env:u,cwd:process.cwd(),shell:process.platform==="win32"}),s="";n||(l=c.stderr)==null||l.on("data",g=>{s+=g.toString()}),c.on("close",g=>{let p=g===0,f=d.resolve(process.cwd(),"dist",e);if(p)try{if(a.existsSync(f)){let h=a.readdirSync(f);for(let i of h)if(i.startsWith(".temp.mp.")&&i.endsWith(".html")){let w=d.resolve(f,i),b=`${i.replace(/^\.temp\.mp\./,"").replace(/\.html$/,"")}.html`,$=d.resolve(f,b);a.renameSync(w,$)}}}catch(h){r("\u91CD\u547D\u540DHTML\u6587\u4EF6\u5931\u8D25:",h)}else!n&&s&&console.error(`\u7B56\u7565 ${e} \u9519\u8BEF\u8F93\u51FA:`,s);o({strategy:e,success:p,error:p?void 0:s||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${g}`,outputDir:f})}),c.on("error",g=>{r(`\u274C \u7B56\u7565 ${e} \u6784\u5EFA\u51FA\u9519:`,g.message);let p=W(t);o({strategy:e,success:!1,error:g.message,outputDir:p})})})}async function Pe(e){let t=V.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let n of t){let o=d.resolve(process.cwd(),n);try{a.unlinkSync(o)}catch{}}}async function Oe(e,t){let n=t?console.log.bind(console,"[flatten]"):()=>{},o=d.resolve(process.cwd(),"dist");if(!a.existsSync(o))return;n("\u5F00\u59CB\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784...");let r=[];for(let s of e){let l=d.resolve(o,s);if(a.existsSync(l)){let g=a.readdirSync(l);for(let p of g)if(p.endsWith(".html")){let f=d.resolve(l,p),h=d.resolve(o,p),i=a.existsSync(h)?d.resolve(o,`${s}-${p}`):h;a.renameSync(f,i),r.push(d.basename(i)),n(`\u79FB\u52A8HTML: ${s}/${p} -> ${d.basename(i)}`)}}}let u=d.resolve(o,"assets");if(a.existsSync(u)){let s=d.resolve(o,"assets-backup");a.existsSync(s)&&a.rmSync(s,{recursive:!0}),a.renameSync(u,s)}a.mkdirSync(u,{recursive:!0});let y=new Set;for(let s of e){let l=d.resolve(o,s);if(a.existsSync(l)){let g=d.resolve(l,"assets");if(a.existsSync(g)){let p=a.readdirSync(g);for(let f of p){let h=d.resolve(g,f),i=d.resolve(u,f);if(!y.has(f))a.renameSync(h,i),y.add(f),n(`\u79FB\u52A8\u8D44\u6E90: ${s}/assets/${f} -> assets/${f}`);else{let w=a.readFileSync(h),m=a.readFileSync(i);if(w.equals(m))a.unlinkSync(h),n(`\u5220\u9664\u91CD\u590D\u8D44\u6E90: ${s}/assets/${f} (\u5185\u5BB9\u76F8\u540C)`);else{let b=d.parse(f).name,$=d.parse(f).ext,S=`${b}-${s}${$}`,E=d.resolve(u,S);a.renameSync(h,E),n(`\u79FB\u52A8\u8D44\u6E90: ${s}/assets/${f} -> assets/${S} (\u5185\u5BB9\u4E0D\u540C)`)}}}}}}let c=new Set;for(let s of e){let l=d.resolve(o,s);if(a.existsSync(l)){let g=a.readdirSync(l);for(let p of g)if(!p.endsWith(".html")&&p!=="assets"){let f=d.resolve(l,p),h=d.resolve(o,p);a.statSync(f).isDirectory()?c.has(p)?(a.rmSync(f,{recursive:!0}),n(`\u5220\u9664\u91CD\u590D\u76EE\u5F55: ${s}/${p}`)):(a.existsSync(h)&&a.rmSync(h,{recursive:!0}),a.renameSync(f,h),c.add(p),n(`\u79FB\u52A8\u76EE\u5F55: ${s}/${p} -> ${p}`)):c.has(p)?(a.unlinkSync(f),n(`\u5220\u9664\u91CD\u590D\u6587\u4EF6: ${s}/${p}`)):(a.renameSync(f,h),c.add(p),n(`\u79FB\u52A8\u6587\u4EF6: ${s}/${p} -> ${p}`))}}}for(let s of r){let l=d.resolve(o,s);if(a.existsSync(l)){let g=a.readFileSync(l,"utf-8"),p="default";s==="mobile.html"?p="mobile":s==="tablet.html"?p="tablet":s.startsWith("mobile-")?p="mobile":s.startsWith("tablet-")&&(p="tablet");let f=d.resolve(o,"assets");if(a.existsSync(f)){let h=a.readdirSync(f);for(let i of h)if(i.includes(`-${p}`)){let m=i.replace(`-${p}`,"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),b=new RegExp(`\\./assets/${m}(?=\\s|>|"|')`,"g");g=g.replace(b,`./assets/${i}`)}}a.writeFileSync(l,g),n(`\u66F4\u65B0\u8D44\u6E90\u8DEF\u5F84: ${s} -> assets/`)}}for(let s of e){let l=d.resolve(o,s);if(a.existsSync(l))try{a.rmSync(l,{recursive:!0}),n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55: ${s}`)}catch(g){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u5931\u8D25: ${s}`,g)}}n("\u6241\u5E73\u5316\u5B8C\u6210")}async function De(e,t){let n=t?console.log.bind(console,"[cleanup]"):()=>{},o=V.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let r of o){let u=d.resolve(process.cwd(),r);try{a.unlinkSync(u)}catch(y){n(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${r}`,y)}}for(let r of e){let u=d.resolve(process.cwd(),"dist",r);if(a.existsSync(u)){let y=V.sync("*.mp.temp.html",{cwd:u});for(let c of y){let s=d.resolve(u,c);try{a.unlinkSync(s)}catch(l){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${r}/${c}`,l)}}}}}async function ie(){let{viteBuildArgs:e,debug:t,cwd:n,strategies:o,concurrency:r,flatten:u}=ve(),y=t?console.log.bind(console,"[main]"):()=>{};if(n){let c=d.resolve(process.cwd(),n);a.existsSync(c)||(console.error(`\u274C \u6307\u5B9A\u7684\u76EE\u5F55\u4E0D\u5B58\u5728: ${c}`),process.exit(1)),process.chdir(c),y(`\u5207\u6362\u5DE5\u4F5C\u76EE\u5F55\u5230: ${c}`)}try{let c=await Ce(),{cleanViteOutputDirectory:s}=await Promise.resolve().then(()=>(B(),q));s(e),await je(c,e,t,o,r,u)}catch(c){console.error("\u274C \u6784\u5EFA\u5931\u8D25:",c instanceof Error?c.message:c),process.exit(1)}}async function je(e,t,n,o,r=3,u=!1){let y=n?console.log.bind(console,"[strategy-mode]"):()=>{},{getAvailableStrategies:c}=await Promise.resolve().then(()=>(B(),q)),s=c({entry:e.entry||"src/pages/*/main.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",pageConfigs:e.pageConfigs||{},strategies:e.strategies||{}});if(s.length===0)throw new Error("\u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565");let l;if(o&&o.length>0){let i=o.filter(w=>!s.includes(w));if(i.length>0)throw new Error(`\u6307\u5B9A\u7684\u7B56\u7565\u4E0D\u5B58\u5728: ${i.join(", ")}
\u53EF\u7528\u7B56\u7565: ${s.join(", ")}`);l=o}else l=s;y(`\u{1F680} \u5F00\u59CB\u6784\u5EFA\u7B56\u7565: ${l.join(", ")} (\u5E76\u53D1\u6570: ${r})`);let g=[];for(let i=0;i<l.length;i+=r){let w=l.slice(i,i+r),m=w.map($=>Fe($,t,n)),b=await Promise.all(m);g.push(...b),n&&y(`\u6279\u6B21 ${Math.floor(i/r)+1} \u5B8C\u6210: ${w.join(", ")}`)}let p=g.filter(i=>i.success).length;g.length-p>0&&(console.log(`
\u274C \u6784\u5EFA\u5931\u8D25:`),g.filter(i=>!i.success).forEach(i=>{console.log(` - ${i.strategy}: ${i.error}`)}),await Pe(n),process.exit(1)),u&&await Oe(l,n),await De(l,n);let h=g.filter(i=>i.success);if(console.log(`
\u{1F389} \u6784\u5EFA\u6210\u529F\uFF01`),console.log(`\u{1F4E6} \u7B56\u7565: ${h.map(i=>i.strategy).join(", ")}`),u){console.log("\u{1F4C1} \u8F93\u51FA\u7ED3\u6784: \u6241\u5E73\u5316");let i=d.resolve(process.cwd(),"dist");if(a.existsSync(i)){let w=a.readdirSync(i).filter(m=>m.endsWith(".html"));console.log(` - HTML\u6587\u4EF6: ${w.join(", ")}`)}}else for(let i of h){let w=d.resolve(process.cwd(),"dist",i.strategy);if(a.existsSync(w)){let m=a.readdirSync(w).filter(b=>b.endsWith(".html"));console.log(` - ${i.strategy}: ${m.join(", ")}`)}}}require.main===module&&ie().catch(e=>{console.error("\u274C \u672A\u5904\u7406\u7684\u9519\u8BEF:",e),process.exit(1)});0&&(module.exports={buildAll});