@fchc8/vite-plugin-multi-page 1.11.4 → 2.1.0

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/dist/cli.js CHANGED
@@ -1,145 +1,28 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var Re=Object.create;var z=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var je=Object.getOwnPropertyNames;var Ae=Object.getPrototypeOf,Le=Object.prototype.hasOwnProperty;var _=(e,t)=>()=>(e&&(t=e(e=0)),t);var k=(e,t)=>{for(var r in t)z(e,r,{get:t[r],enumerable:!0})},pe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of je(t))!Le.call(e,s)&&s!==r&&z(e,s,{get:()=>t[s],enumerable:!(n=Ie(t,s))||n.enumerable});return e};var E=(e,t,r)=>(r=e!=null?Re(Ae(e)):{},pe(t||!e||!e.__esModule?z(r,"default",{value:e,enumerable:!0}):r,e)),Ue=e=>pe(z({},"__esModule",{value:!0}),e);var C=_(()=>{"use strict"});function N(e,t,r,n){let s=[],l=new Map,c=t.replace(/\/\*.*$/,"");(!c||c===t)&&(c=I.dirname(t.split("*")[0]));let i=[];for(let f of e){if(r.includes(f))continue;let g=f.replace(/\\/g,"/"),m=c.replace(/\\/g,"/"),u=I.posix.relative(m,g).split("/");if(u.length===1){let o=u[0],p=I.posix.basename(o,I.posix.extname(o));i.push({name:p,file:f,priority:1})}else if(u.length>=2){let o=I.posix.basename(g,I.posix.extname(g)),p=u[0];o==="main"&&i.push({name:p,file:f,priority:2})}}for(let f of i){let g=l.get(f.name);g?f.priority>g.priority&&l.set(f.name,{file:f.file,priority:f.priority}):l.set(f.name,{file:f.file,priority:f.priority})}for(let[f,{file:g}]of l.entries())s.push({name:f,file:g});return s}var I,re=_(()=>{"use strict";C();I=E(require("path"))});var ue={};k(ue,{getPageConfig:()=>R});function R(e,t,r){if(!e)return null;if(typeof e=="function")return e(t);for(let[n,s]of Object.entries(e)){if(n===t.pageName)return r(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${t.pageName}:`,s),s;if(s.match&&(Array.isArray(s.match)?s.match:[s.match]).some(i=>q(i,t.pageName)||q(i,t.relativePath)||q(i,t.filePath)))return r(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${t.pageName} (\u6A21\u5F0F: ${s.match}):`,s),{...s,match:void 0};if(q(n,t.pageName))return r(`Glob\u5339\u914D\u9875\u9762 ${t.pageName} (\u6A21\u5F0F: ${n}):`,s),s}return null}function q(e,t){let r=e.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${r}$`).test(t)}var J=_(()=>{"use strict";C()});function me(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function W(e){return(...t)=>{e&&console.log("[vite-plugin-multi-page]",...t)}}var oe=_(()=>{"use strict";C()});var X={};k(X,{cleanViteOutputDirectory:()=>ie,discoverPages:()=>ke,generateBuildConfig:()=>B,getAvailableStrategies:()=>ae,getViteOutputDirectory:()=>L});function B(e){var a;let{entry:t="src/pages/*/main.{ts,js}",exclude:r=[],template:n="index.html",placeholder:s="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:l={},pageConfigs:c={},forceBuildStrategy:i,forceBuildPage:f}=e,g=W(!0),m={};try{let u=K.glob.sync(t,{cwd:process.cwd()}),o=N(u,t,r,g);if(o.length===0)return g("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let p=new Map,y=new Map;for(let S of o){let $={pageName:S.name,filePath:S.file,relativePath:F.relative(process.cwd(),S.file)},w=R(c,$,g),P=(w==null?void 0:w.strategy)||"default";p.set(S.name,P),y.has(P)||y.set(P,[]),(a=y.get(P))==null||a.push(S.name)}if(g(`\u{1F4C4} \u53D1\u73B0 ${o.length} \u4E2A\u9875\u9762: ${o.map(S=>S.name).join(", ")}`),f){if(!o.find(A=>A.name===f))return g(`\u8B66\u544A: \u672A\u627E\u5230\u9875\u9762 "${f}"`),{};let $=p.get(f)||"default",w=l[$]||{},P=Q(`single-${f}`,[f],o,w,c,n,s,g);return m[`single-${f}`]=P,m}if(i){let S=y.get(i)||[];if(S.length===0)return g(`\u8B66\u544A: \u7B56\u7565 "${i}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};g(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${i}, \u9875\u9762: ${S.join(", ")}`);let $=Q(i,S,o,l[i],c,n,s,g);return m[i]=$,m}for(let[S,$]of y){if($.length===0)continue;let w=l[S]||{},P=Q(S,$,o,w,c,n,s,g);m[S]=P}if(Object.keys(m).length===0){g("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let S=o.map(w=>w.name),$=Q("default",S,o,{},c,n,s,g);m.default=$}let v=Object.keys(m);return g(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${v.join(", ")}`),m}catch(u){throw g("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",u),u}}function Q(e,t,r,n,s,l,c,i){let f={},g=[],m={};for(let o of t){let p=r.find(ne=>ne.name===o);if(!p)continue;let y={pageName:o,filePath:p.file,relativePath:F.relative(process.cwd(),p.file),strategy:e},v=R(s,y,i);v!=null&&v.define&&Object.assign(m,v.define);let S=l,$=`${o}.html`;O.existsSync(F.resolve(process.cwd(),$))?S=$:v!=null&&v.template&&(S=v.template);let w=F.resolve(process.cwd(),S);if(!O.existsSync(w)){i(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${S}`);continue}let P=O.readFileSync(w,"utf-8");if(P.includes(c)){let ne=`./${p.file}`;P=P.replace(new RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),ne)}let A=F.resolve(process.cwd(),`.temp.mp.${o}.html`);O.writeFileSync(A,P),g.push(A),f[o]=A}let a={build:{rollupOptions:{input:f,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},emptyOutDir:!1},define:{}},u=a;return n&&(u=(0,de.mergeConfig)(a,n)),Object.keys(m).length>0&&(u.define={...u.define,...m}),u.build||(u.build={}),u.build.rollupOptions||(u.build.rollupOptions={}),u.build.rollupOptions.input=f,u.build.emptyOutDir=!1,i(`\u7B56\u7565 "${e}" - ${t.length} \u4E2A\u9875\u9762`),u}function L(e=[]){let t=e.findIndex(n=>n==="--outDir");if(t!==-1&&t+1<e.length){let n=e[t+1];return F.resolve(process.cwd(),n)}let r=e.find(n=>n.startsWith("--outDir="));if(r){let n=r.split("=")[1];return F.resolve(process.cwd(),n)}return F.resolve(process.cwd(),"dist")}function ie(e=[]){let t=L(e),r=W(!0);try{O.existsSync(t)&&(O.rmSync(t,{recursive:!0,force:!0}),r(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${F.relative(process.cwd(),t)}`))}catch(n){r(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${t}`,n)}}function ke(e){let{entry:t="src/pages/*/main.{ts,js}",exclude:r=[]}=e,n=W(!0);try{let s=K.glob.sync(t,{cwd:process.cwd()});return N(s,t,r,n)}catch(s){throw n("\u53D1\u73B0\u9875\u9762\u5931\u8D25:",s),s}}function ae(e){let{entry:t="src/pages/*/main.{ts,js}",exclude:r=[],pageConfigs:n={}}=e,s=W(!1),l=new Set,c=K.glob.sync(t,{cwd:process.cwd()}),i=N(c,t,r,s);if(i.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${t}`);try{for(let f of i){let g={pageName:f.name,filePath:f.file,relativePath:F.relative(process.cwd(),f.file)},m=R(n,g,s),a=(m==null?void 0:m.strategy)||"default";l.add(a)}return Array.from(l).sort()}catch(f){return s("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",f),["default"]}}var de,K,F,O,U=_(()=>{"use strict";C();de=require("vite"),K=require("glob"),F=E(require("path")),O=E(require("fs"));re();J();oe()});var ve={};k(ve,{hasCustomConfig:()=>Z,loadUserConfig:()=>ee});function Z(){for(let e of he){let t=j.resolve(process.cwd(),e);if(G.existsSync(t))return!0}return!1}async function ee(e){let t=await Be();if(t){let r=t(e);return r||{}}return null}async function Ne(e){if(e.endsWith(".ts"))try{let t=await G.promises.readFile(e,"utf-8"),r;try{r=await import("esbuild")}catch{throw console.error(`
3
- \u274C \u65E0\u6CD5\u52A0\u8F7D TypeScript \u914D\u7F6E\u6587\u4EF6\uFF0C\u56E0\u4E3A\u627E\u4E0D\u5230 esbuild \u4F9D\u8D56\u3002`),console.error(`
4
- \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
5
- `),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${j.basename(e)}`)}let n=await r.transform(t,{loader:"ts",format:"cjs",target:"node16",sourcemap:!1}),s=new Y.Module(e);return s.filename=e,s.paths=Y.Module._nodeModulePaths(j.dirname(e)),s._compile(n.code,e),s.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 n=(await G.promises.readFile(e,"utf-8")).replace(/export\s+default\s+/,"module.exports = ").replace(/import\s+.*?from\s+['"][^'"]*['"];?\s*/g,"").replace(/:\s*[^=,})\]]+/g,""),s=new Y.Module(e);return s.filename=e,s.paths=Y.Module._nodeModulePaths(j.dirname(e)),s._compile(n,e),s.exports}if(e.endsWith(".js")||e.endsWith(".mjs"))return import(`${(0,ye.pathToFileURL)(e).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${e}`)}async function Be(){let e=process.cwd();for(let t of he){let r=j.resolve(e,t);if(G.existsSync(r))try{let n=await Ne(r),s=n.default||n;if(typeof s=="function")return s;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${t} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(n){t.endsWith(".ts")?(console.error(`\u52A0\u8F7DTypeScript\u914D\u7F6E\u6587\u4EF6 ${t} \u5931\u8D25:`,n),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:`,n)}}return null}var G,j,ye,Y,he,ce=_(()=>{"use strict";C();G=E(require("fs")),j=E(require("path")),ye=require("url"),Y=require("module"),he=["multipage.config.js","multipage.config.mjs","multipage.config.ts"]});var xe={};k(xe,{DEFAULT_CONFIG:()=>T,isEmptyConfig:()=>Ge,mergeWithDefaults:()=>V});function V(e){if(!e)return{...T};let t=e.strategies??e.buildStrategies??T.strategies;return{entry:e.entry??T.entry,exclude:e.exclude??T.exclude,template:e.template??T.template,placeholder:e.placeholder??T.placeholder,debug:e.debug??T.debug,merge:e.merge??T.merge,strategies:t,pageConfigs:e.pageConfigs??T.pageConfigs,pageEnvs:e.pageEnvs??T.pageEnvs,__forceBuildStrategy:e.__forceBuildStrategy}}function Ge(e){if(Object.keys(e).length===0)return!0;let t=e.entry&&e.entry!==T.entry,r=e.strategies&&Object.keys(e.strategies).length>0||e.buildStrategies&&Object.keys(e.buildStrategies).length>0,n=e.pageConfigs&&(typeof e.pageConfigs=="function"||Object.keys(e.pageConfigs).length>0);return!t&&!r&&!n}var T,te=_(()=>{"use strict";C();T={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,merge:"all",strategies:{default:{}},pageConfigs:{},pageEnvs:()=>null}});function Ve(e,t,r){try{let n=Se.glob.sync(t.entry,{cwd:process.cwd()}),s=N(n,t.entry,t.exclude,r);if(s.length===0){r("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6");return}let l=t.devStrategy||e.config.__cliStrategy||e.config.strategy;l&&(r(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${l}`),s=s.filter(c=>{let i={pageName:c.name,filePath:c.file,relativePath:D.relative(process.cwd(),c.file),strategy:void 0,isMatched:!1},f=R(t.pageConfigs,i,r),g=(f==null?void 0:f.strategy)||"default";return l==="default"?g==="default":g===l}),r(`\u7B56\u7565 "${l}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${s.map(c=>c.name).join(", ")||"\u65E0"}`)),r("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",s),e.middlewares.use(async(c,i,f)=>{try{let m=(c.url||"").split("?")[0];if(m==="/"){let o=Ye(s,t,r);i.statusCode=200,i.setHeader("Content-Type","text/html"),i.end(o);return}if(m.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!m.endsWith(".html")||m.startsWith("/@")||m.includes("__vite")||m.startsWith("/node_modules"))return f();let a="";if(m.endsWith(".html"))a=D.basename(m,".html");else if(m.startsWith("/")){let o=m.substring(1);if(s.find(p=>p.name===o))a=o;else{let p=o.split("/");if(p.length>1){let y=p[0];s.find(v=>v.name===y)&&(a=y,r(`History \u8DEF\u7531\u5339\u914D: ${m} -> ${y}`))}}}if(!a)return f();let u=s.find(o=>o.name===a);return u?We(i,u,t,r):f()}catch(g){r(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${g}`),f(g)}}),r("\u5F00\u53D1\u670D\u52A1\u5668\u914D\u7F6E\u5B8C\u6210")}catch(n){throw r(`\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668\u5931\u8D25: ${n}`),n}}function We(e,t,r,n){var m;let s={pageName:t.name,filePath:t.file,relativePath:D.relative(process.cwd(),t.file),strategy:void 0,isMatched:!1},l=R(r.pageConfigs,s,n);if(l!=null&&l.strategy)s.strategy=l.strategy;else if((m=r.appliedStrategies)!=null&&m.has(t.name)){let a=r.appliedStrategies.get(t.name);a&&(s.strategy=a)}let c="",i=D.resolve(process.cwd(),`${t.name}.html`);if(H.existsSync(i)?c=i:l!=null&&l.template?c=D.resolve(process.cwd(),l.template):c=D.resolve(process.cwd(),r.template),!H.existsSync(c)){e.statusCode=404,e.end("Template not found");return}let f=H.readFileSync(c,"utf-8");if(f.includes(r.placeholder)){let a=f;if(f=f.split(r.placeholder).join(`/${t.file}`),f===a){let u=me(r.placeholder),o=new RegExp(u,"g");f=a.replace(o,`/${t.file}`),f===a&&(f=a.replace(/\{\{ENTRY_FILE\}\}/g,`/${t.file}`))}}if(l!=null&&l.define){let a=Object.entries(l.define).map(([u,o])=>{let p=typeof o=="string"?`"${o}"`:JSON.stringify(o);return`window.${u} = ${p};`}).join(`
6
- `);a&&(f=f.replace(/<\/head>/i,`<script type="text/javascript">
7
- ${a}
8
- </script>
9
- </head>`))}e.statusCode=200,e.setHeader("Content-Type","text/html"),e.end(f)}function Ye(e,t,r){try{let n=e.map(s=>{var g;let l={pageName:s.name,filePath:s.file,relativePath:D.relative(process.cwd(),s.file),strategy:void 0,isMatched:!1},c=R(t.pageConfigs,l,r),i="default";if(c!=null&&c.strategy)i=c.strategy;else if((g=t.appliedStrategies)!=null&&g.has(s.name)){let m=t.appliedStrategies.get(s.name);m&&(i=m)}let f=i!=="default"?`<span class="badge">${i}</span>`:"";return`
10
- <div class="page-item">
11
- <a href="${s.name}.html" class="page-link">
12
- ${s.name}${f}
13
- </a>
14
- <div class="page-path">${s.file}</div>
15
- </div>`}).join("");return`
16
- <!DOCTYPE html>
17
- <html lang="en">
18
- <head>
19
- <meta charset="UTF-8">
20
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
21
- <title>\u591A\u9875\u9762\u5E94\u7528\u7D22\u5F15</title>
22
- <style>
23
- body {
24
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
25
- line-height: 1.6;
26
- color: #333;
27
- max-width: 1200px;
28
- margin: 0 auto;
29
- padding: 20px;
30
- background-color: #f5f5f7;
31
- }
32
- h1 {
33
- font-size: 24px;
34
- margin-bottom: 20px;
35
- color: #111;
36
- }
37
- .page-list {
38
- display: grid;
39
- grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
40
- gap: 16px;
41
- }
42
- .page-item {
43
- background-color: white;
44
- border-radius: 8px;
45
- padding: 16px;
46
- box-shadow: 0 1px 3px rgba(0,0,0,0.1);
47
- transition: transform 0.2s, box-shadow 0.2s;
48
- }
49
- .page-item:hover {
50
- transform: translateY(-2px);
51
- box-shadow: 0 4px 8px rgba(0,0,0,0.1);
52
- }
53
- .page-link {
54
- display: flex;
55
- align-items: center;
56
- justify-content: space-between;
57
- font-size: 18px;
58
- font-weight: 500;
59
- color: #0066cc;
60
- text-decoration: none;
61
- margin-bottom: 8px;
62
- }
63
- .page-path {
64
- font-size: 14px;
65
- color: #666;
66
- word-break: break-all;
67
- }
68
- .badge {
69
- display: inline-block;
70
- font-size: 12px;
71
- padding: 2px 8px;
72
- border-radius: 12px;
73
- background-color: #e6f2ff;
74
- color: #0066cc;
75
- margin-left: 8px;
76
- }
77
- .stats {
78
- margin-bottom: 20px;
79
- font-size: 14px;
80
- color: #666;
81
- }
82
- </style>
83
- </head>
84
- <body>
85
- <h1>\u591A\u9875\u9762\u5E94\u7528\u7D22\u5F15</h1>
86
- <div class="stats">
87
- \u627E\u5230 ${e.length} \u4E2A\u9875\u9762
88
- </div>
89
- <div class="page-list">
90
- ${n}
91
- </div>
92
- </body>
93
- </html>
94
- `}catch(n){return r(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${n}`),`
95
- <!DOCTYPE html>
96
- <html>
97
- <head>
98
- <title>\u9519\u8BEF</title>
99
- </head>
100
- <body>
101
- <h1>\u751F\u6210\u7D22\u5F15\u9875\u65F6\u53D1\u751F\u9519\u8BEF</h1>
102
- <p>${n}</p>
103
- </body>
104
- </html>
105
- `}}var D,H,Se,be,$e=_(()=>{"use strict";C();D=E(require("path")),H=E(require("fs")),Se=require("glob");re();oe();J();be=Ve});function Pe(e){return typeof e=="function"?e:()=>e}function Ce(e){return e}var we=_(()=>{"use strict";C()});var _e={};k(_e,{cleanViteOutputDirectory:()=>ie,default:()=>ze,defineConfig:()=>Pe,defineConfigTransform:()=>Ce,generateBuildConfig:()=>B,getAvailableStrategies:()=>ae,getViteOutputDirectory:()=>L,mergeWithDefaults:()=>V,reorganizeAssetsInCLI:()=>He,viteMultiPage:()=>Te});function Fe(e,t,r,n){let s=b.resolve(e,"assets");if(!h.existsSync(s)){n("assets\u76EE\u5F55\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u91CD\u7EC4");return}let l=h.readdirSync(e).filter(a=>a.endsWith(".html")).map(a=>b.resolve(e,a));if(l.length===0){if(n("\u672A\u627E\u5230HTML\u6587\u4EF6\uFF0C\u4F46\u4ECD\u9700\u6E05\u7406assets\u76EE\u5F55"),(t==="strategy"||t==="page")&&h.existsSync(s))try{h.rmSync(s,{recursive:!0,force:!0}),n("\u5F3A\u5236\u6E05\u7406\u6574\u4E2A\u6839\u76EE\u5F55assets\u76EE\u5F55 (strategy/page\u6A21\u5F0F)")}catch(a){n("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",a)}return}let c=new Map,i=new Map;l.forEach(a=>{var w;let u=b.basename(a,".html");u.startsWith(".temp.mp.")&&(u=u.replace(".temp.mp.",""));let o=h.readFileSync(a,"utf-8"),p=[],y=/(?:src|href)="\/assets\/([^"]+)"/g,v;for(;(v=y.exec(o))!==null;){let P=v[1];p.push(P),i.has(P)||i.set(P,[]),(w=i.get(P))==null||w.push(u)}let S="";t==="page"&&(S=u);let $=b.resolve(e,S);c.set(u,{assets:p,targetDir:$}),n(`\u9875\u9762 ${u} \u4F9D\u8D56\u8D44\u6E90:`,p)}),n("\u7B2C\u4E00\u9636\u6BB5\u8865\u5145\uFF1A\u5206\u6790public\u76EE\u5F55\u8D44\u6E90");let f=new Set,g=b.resolve(process.cwd(),"public");if(h.existsSync(g)){let a=Ee.sync("**/*",{cwd:g,nodir:!0});for(let u of a)f.add(u),n(`\u53D1\u73B0public\u8D44\u6E90: ${u}`)}i.forEach((a,u)=>{a.length>1?n(`\u5171\u4EAB\u8D44\u6E90 ${u} \u88AB\u9875\u9762\u4F7F\u7528:`,a):n(`\u72EC\u5360\u8D44\u6E90 ${u} \u4EC5\u88AB\u9875\u9762 ${a[0]} \u4F7F\u7528`)}),c.forEach(({assets:a,targetDir:u},o)=>{let p=b.resolve(u,"assets");h.existsSync(p)||h.mkdirSync(p,{recursive:!0}),a.forEach(y=>{let v=b.resolve(s,y),S=b.resolve(p,y);if(h.existsSync(v)){h.copyFileSync(v,S);let w=(i.get(y)||[]).length>1?"\u5171\u4EAB\u8D44\u6E90":"\u72EC\u5360\u8D44\u6E90";n(`\u590D\u5236${w}\u5230 ${o}: assets/${y} -> ${b.relative(e,S)}`)}else n(`\u8B66\u544A: \u8D44\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728: ${v}`)}),h.existsSync(s)&&h.readdirSync(s).forEach(v=>{if(!a.includes(v)){let S=b.resolve(s,v),$=b.resolve(p,v);h.existsSync(S)&&(h.copyFileSync(S,$),n(`\u590D\u5236\u5176\u4ED6\u8D44\u6E90\u6587\u4EF6\u5230 ${o}: assets/${v} -> ${b.relative(e,$)}`))}})}),n("\u7B2C\u4E09\u9636\u6BB5\u8865\u5145\uFF1A\u5904\u7406public\u76EE\u5F55\u8D44\u6E90");let m=new Set;c.forEach(({targetDir:a})=>{m.add(a)});for(let a of m)for(let u of f){let o=b.resolve(e,u),p=b.resolve(a,u);if(h.existsSync(o)){let y=b.dirname(p);h.existsSync(y)||h.mkdirSync(y,{recursive:!0}),h.copyFileSync(o,p),n(`\u590D\u5236public\u8D44\u6E90: ${u} -> ${b.relative(e,p)}`)}}if(c.forEach(({targetDir:a},u)=>{let o=b.resolve(e,`${u}.html`),p=u;if(h.existsSync(o)||(o=b.resolve(e,`.temp.mp.${u}.html`),h.existsSync(o)&&(p=u)),h.existsSync(o)){let y=h.readFileSync(o,"utf-8");y=y.replace(/(?:src|href)="\/assets\//g,$=>$.replace("/assets/","./assets/"));let v;t==="strategy"?v=b.resolve(a,`${p}.html`):t==="page"?v=b.resolve(a,"index.html"):v=o,h.writeFileSync(v,y),v!==o&&h.unlinkSync(o);let S=b.relative(e,v);n(`\u6309${t}\u5206\u7EC4\u79FB\u52A8HTML\u6587\u4EF6: ${p}.html -> ${S}`)}else n(`\u8B66\u544A: \u672A\u627E\u5230HTML\u6587\u4EF6: ${u}.html \u6216 .temp.mp.${u}.html`)}),h.existsSync(s))if(t==="strategy"||t==="page")try{h.rmSync(s,{recursive:!0,force:!0}),n("\u5F3A\u5236\u6E05\u7406\u6574\u4E2A\u6839\u76EE\u5F55assets\u76EE\u5F55 (strategy/page\u6A21\u5F0F)")}catch(a){n("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",a)}else{i.forEach((u,o)=>{let p=b.resolve(s,o);h.existsSync(p)&&(h.unlinkSync(p),n(`\u6E05\u7406\u539F\u59CB\u8D44\u6E90\u6587\u4EF6: assets/${o}`))});let a=h.readdirSync(s);a.length===0?(h.rmdirSync(s),n("\u6E05\u7406\u7A7A\u7684assets\u76EE\u5F55")):n("assets\u76EE\u5F55\u4E2D\u8FD8\u6709\u672A\u5904\u7406\u7684\u6587\u4EF6:",a)}(t==="strategy"||t==="page")&&f.size>0&&(n("\u7B2C\u4E94\u9636\u6BB5\u8865\u5145\uFF1A\u6E05\u7406\u6839\u76EE\u5F55\u7684public\u8D44\u6E90"),f.forEach(a=>{let u=b.resolve(e,a);if(h.existsSync(u))try{h.unlinkSync(u),n(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90: ${a}`)}catch(o){n(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90\u5931\u8D25: ${a}`,o)}}),f.forEach(a=>{let u=b.resolve(e,a),o=b.dirname(u);for(;o!==e&&o!==b.dirname(o);)try{if(h.existsSync(o)&&h.readdirSync(o).length===0)h.rmdirSync(o),n(`\u5220\u9664\u7A7A\u76EE\u5F55: ${b.relative(e,o)}`),o=b.dirname(o);else break}catch{break}}))}function Te(e){let t,r=[],n=()=>{};return{name:"vite-multi-page",async configResolved(s){let l=null;Z()&&(l=await ee({mode:s.command==="serve"?"development":"production",command:s.command,isCLI:!1}));let c=V(l);t=e?e(c,{mode:s.command==="serve"?"development":"production",command:s.command,isCLI:!1}):c,n=t.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{},n("Vite\u914D\u7F6E\u5DF2\u89E3\u6790, \u4F7F\u7528\u914D\u7F6E:",{strategies:Object.keys(t.strategies||{}),entry:t.entry})},async config(s,{command:l}){var c;if(l==="serve"){let i=process.argv,f=i.find(g=>g.startsWith("--strategy="));if(f){let g=f.split("=")[1];g&&(process.env.VITE_MULTI_PAGE_STRATEGY=g)}else{let g=i.findIndex(m=>m==="--strategy");if(g!==-1&&g+1<i.length){let m=i[g+1];process.env.VITE_MULTI_PAGE_STRATEGY=m}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(l==="build"){if(!t){let a=null;Z()&&(a=await ee({mode:"production",command:"build",isCLI:!1}));let u=V(a);t=e?e(u,{mode:"production",command:"build",isCLI:!1}):u,n=t.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{}}n("\u914D\u7F6E\u6784\u5EFA\u6A21\u5F0F");let i=process.env.VITE_MULTI_PAGE_BUILD_SINGLE_PAGE;if(i){n(`\u5355\u9875\u9762\u6784\u5EFA\u6A21\u5F0F: ${i}`);let a=B({entry:t.entry||"src/pages/**/*.{ts,js}",exclude:t.exclude||[],template:t.template||"index.html",placeholder:t.placeholder||"{{ENTRY_FILE}}",merge:t.merge||"all",strategies:t.strategies||{},pageConfigs:t.pageConfigs||{},forceBuildStrategy:void 0,forceBuildPage:i}),u=Object.values(a);if(u.length>0){let o=u[0],p=(0,le.mergeConfig)(s,o);Object.assign(s,p),n(`\u5DF2\u5E94\u7528\u5355\u9875\u9762\u6784\u5EFA\u914D\u7F6E: ${i}`);return}else throw new Error(`\u672A\u627E\u5230\u9875\u9762: ${i}`)}let f=process.env.VITE_MULTI_PAGE_STRATEGY,g=B({entry:t.entry||"src/pages/**/*.{ts,js}",exclude:t.exclude||[],template:t.template||"index.html",placeholder:t.placeholder||"{{ENTRY_FILE}}",merge:t.merge||"all",strategies:t.strategies||{},pageConfigs:t.pageConfigs||{},forceBuildStrategy:f}),m=Object.keys(g)[0];if(m&&g[m]){n(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${m}`);let a=g[m],u=(0,le.mergeConfig)(s,a);Object.assign(s,u),n(`\u5DF2\u5E94\u7528\u7B56\u7565 "${m}" \u7684\u914D\u7F6E:`,{build:!!a.build,define:!!a.define,plugins:((c=a.plugins)==null?void 0:c.length)||0})}else throw n("\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
106
-
107
- \u53EF\u80FD\u7684\u539F\u56E0\uFF1A
108
- 1. \u914D\u7F6E\u6587\u4EF6\u8FD4\u56DE\u7A7A\u5BF9\u8C61 {}
109
- 2. \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6
110
- 3. \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728
111
- 4. \u672A\u914D\u7F6E strategies \u5BF9\u8C61
112
-
113
- \u6700\u5C0F\u914D\u7F6E\u793A\u4F8B\uFF1A
114
- export default () => ({
115
- entry: "src/pages/**/*.{ts,js}",
116
- template: "index.html",
117
- strategies: {
118
- default: {}
119
- }
120
- });`)}},configureServer(s){if(s.config.command==="serve"){n("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let l=process.env.VITE_MULTI_PAGE_STRATEGY||"default";n(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${l}`),be(s,{entry:t.entry||"src/pages/**/*.{ts,js}",exclude:t.exclude||[],template:t.template||"index.html",placeholder:t.placeholder||"{{ENTRY_FILE}}",strategies:t.strategies||{},pageConfigs:t.pageConfigs||{},devStrategy:l},n)}},writeBundle(s){if(!(t!=null&&t.merge)||t.merge==="all")return;let l=s.dir||"dist",c=t.merge;n(`\u5E94\u7528\u6784\u5EFA\u4EA7\u7269\u5408\u5E76\u6A21\u5F0F: ${c}`);try{Fe(l,c,t,n)}catch(i){throw n("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",i),i}},buildEnd(){r.length>0&&(n(`\u6E05\u7406 ${r.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),r.forEach(s=>{try{h.existsSync(s)&&(h.unlinkSync(s),n(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${s}`))}catch(l){n(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${s}`,l)}}),r.length=0)}}}function He(e,t,r,n){return Fe(e,t,r,n)}var h,b,le,Ee,ze,Oe=_(()=>{"use strict";C();h=E(require("fs")),b=E(require("path")),le=require("vite");$e();U();ce();te();Ee=E(require("glob"));we();U();te();ze=Te});var rt={};k(rt,{buildAll:()=>Me});module.exports=Ue(rt);C();var fe=require("child_process"),d=E(require("fs")),x=E(require("path")),se=E(require("glob"));U();function qe(){let e=process.argv.slice(2),t=[],r=!1,n,s;for(let l=0;l<e.length;l++){let c=e[l];c==="--debug"?r=!0:c==="--cwd"?n=e[++l]:c==="--strategy"?s=e[++l].split(",").map(f=>f.trim()):c==="--help"||c==="-h"?(console.log(`
2
+ "use strict";var ce=Object.create;var R=Object.defineProperty;var le=Object.getOwnPropertyDescriptor;var fe=Object.getOwnPropertyNames;var pe=Object.getPrototypeOf,ge=Object.prototype.hasOwnProperty;var D=(e,s)=>()=>(e&&(s=e(e=0)),s);var T=(e,s)=>{for(var n in s)R(e,n,{get:s[n],enumerable:!0})},z=(e,s,n,o)=>{if(s&&typeof s=="object"||typeof s=="function")for(let r of fe(s))!ge.call(e,r)&&r!==n&&R(e,r,{get:()=>s[r],enumerable:!(o=le(s,r))||o.enumerable});return e};var P=(e,s,n)=>(n=e!=null?ce(pe(e)):{},z(s||!e||!e.__esModule?R(n,"default",{value:e,enumerable:!0}):n,e)),ue=e=>z(R({},"__esModule",{value:!0}),e);var me,F,x=D(()=>{"use strict";me=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,F=me()});function A(e,s,n,o){let r=[],u=new Map,y=s.replace(/\/\*.*$/,"");(!y||y===s)&&(y=O.dirname(s.split("*")[0]));let c=[];for(let t of e){if(n.includes(t))continue;let i=t.replace(/\\/g,"/"),g=y.replace(/\\/g,"/"),m=O.posix.relative(g,i).split("/");if(m.length===1){let p=m[0],f=O.posix.basename(p,O.posix.extname(p));c.push({name:f,file:t,priority:1})}else if(m.length>=2){let p=O.posix.basename(i,O.posix.extname(i)),f=m[0];p==="main"&&c.push({name:f,file:t,priority:2})}}for(let t of c){let i=u.get(t.name);i?t.priority>i.priority&&u.set(t.name,{file:t.file,priority:t.priority}):u.set(t.name,{file:t.file,priority:t.priority})}for(let[t,{file:i}]of u.entries())r.push({name:t,file:i});return r}var O,J=D(()=>{"use strict";x();O=P(require("path"))});function M(e,s,n){if(!e)return null;if(typeof e=="function")return e(s);for(let[o,r]of Object.entries(e)){if(o===s.pageName)return n(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${s.pageName}:`,r),r;if(r.match&&(Array.isArray(r.match)?r.match:[r.match]).some(c=>U(c,s.pageName)||U(c,s.relativePath)||U(c,s.filePath)))return n(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${s.pageName} (\u6A21\u5F0F: ${r.match}):`,r),{...r,match:void 0};if(U(o,s.pageName))return n(`Glob\u5339\u914D\u9875\u9762 ${s.pageName} (\u6A21\u5F0F: ${o}):`,r),r}return null}function U(e,s){let n=e.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${n}$`).test(s)}var K=D(()=>{"use strict";x()});function E(e){return(...s)=>{e&&console.log("[vite-plugin-multi-page]",...s)}}var Q=D(()=>{"use strict";x()});var H={};T(H,{cleanViteOutputDirectory:()=>he,discoverPages:()=>ye,generateBuildConfig:()=>de,getAvailableStrategies:()=>be,getViteOutputDirectory:()=>L});function de(e){let{entry:s="src/pages/*/main.{ts,js}",exclude:n=[],template:o="index.html",placeholder:r="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:u={},pageConfigs:y={},forceBuildStrategy:c}=e,t=E(!0),i={};try{let g=I.glob.sync(s,{cwd:process.cwd()}),l=A(g,s,n,t);if(l.length===0)return t("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let m=new Map,p=new Map;for(let d of l){let b={pageName:d.name,filePath:d.file,relativePath:S.relative(process.cwd(),d.file)},w=M(y,b,t)?.strategy||"default";m.set(d.name,w),p.has(w)||p.set(w,[]),p.get(w)?.push(d.name)}if(t(`\u{1F4C4} \u53D1\u73B0 ${l.length} \u4E2A\u9875\u9762: ${l.map(d=>d.name).join(", ")}`),c){let d=p.get(c)||[];if(d.length===0)return t(`\u8B66\u544A: \u7B56\u7565 "${c}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};t(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${c}, \u9875\u9762: ${d.join(", ")}`);let b=G(c,d,l,u[c],y,o,r,t);return i[c]=b,i}for(let[d,b]of p){if(b.length===0)continue;let $=u[d]||{},w=G(d,b,l,$,y,o,r,t);i[d]=w}if(Object.keys(i).length===0){t("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let d=l.map($=>$.name),b=G("default",d,l,{},y,o,r,t);i.default=b}let f=Object.keys(i);return t(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${f.join(", ")}`),i}catch(g){throw t("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",g),g}}function G(e,s,n,o,r,u,y,c){let t={},i=[],g={};for(let f of s){let d=n.find(V=>V.name===f);if(!d)continue;let b={pageName:f,filePath:d.file,relativePath:S.relative(process.cwd(),d.file),strategy:e},$=M(r,b,c);$?.define&&Object.assign(g,$.define);let w=u,j=`${f}.html`;v.existsSync(S.resolve(process.cwd(),j))?w=j:$?.template&&(w=$.template);let N=S.resolve(process.cwd(),w);if(!v.existsSync(N)){c(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${w}`);continue}let _=v.readFileSync(N,"utf-8");if(_.includes(y)){let V=`./${d.file}`;_=_.replace(new RegExp(y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),V)}let W=S.resolve(process.cwd(),`.temp.mp.${f}.html`);v.writeFileSync(W,_),i.push(W),t[f]=W}let l={input:t,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},m={base:"./",build:{outDir:`dist/${e}`,rollupOptions:l,rolldownOptions:l,emptyOutDir:!1},define:{}},p=m;return o&&(p=(0,X.mergeConfig)(m,o)),Object.keys(g).length>0&&(p.define={...p.define,...g}),p.build||(p.build={}),p.build.rollupOptions||(p.build.rollupOptions={}),p.build.rolldownOptions||(p.build.rolldownOptions={}),p.build.rollupOptions.input=t,p.build.rolldownOptions.input=t,p.build.emptyOutDir=!1,c(`\u7B56\u7565 "${e}" - ${s.length} \u4E2A\u9875\u9762`),p}function L(e=[]){let s=e.findIndex(o=>o==="--outDir");if(s!==-1&&s+1<e.length){let o=e[s+1];return S.resolve(process.cwd(),o)}let n=e.find(o=>o.startsWith("--outDir="));if(n){let o=n.split("=")[1];return S.resolve(process.cwd(),o)}return S.resolve(process.cwd(),"dist")}function he(e=[]){let s=L(e),n=E(!0);try{v.existsSync(s)&&(v.rmSync(s,{recursive:!0,force:!0}),n(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${S.relative(process.cwd(),s)}`))}catch(o){n(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${s}`,o)}}function ye(e){let{entry:s="src/pages/*/main.{ts,js}",exclude:n=[]}=e,o=E(!0);try{let r=I.glob.sync(s,{cwd:process.cwd()});return A(r,s,n,o)}catch(r){throw o("\u53D1\u73B0\u9875\u9762\u5931\u8D25:",r),r}}function be(e){let{entry:s="src/pages/*/main.{ts,js}",exclude:n=[],pageConfigs:o={}}=e,r=E(!1),u=new Set,y=I.glob.sync(s,{cwd:process.cwd()}),c=A(y,s,n,r);if(c.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${s}`);try{for(let t of c){let i={pageName:t.name,filePath:t.file,relativePath:S.relative(process.cwd(),t.file)},l=M(o,i,r)?.strategy||"default";u.add(l)}return Array.from(u).sort()}catch(t){return r("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",t),["default"]}}var X,I,S,v,k=D(()=>{"use strict";x();X=require("vite"),I=require("glob"),S=P(require("path")),v=P(require("fs"));J();K();Q()});var se={};T(se,{hasCustomConfig:()=>$e,loadUserConfig:()=>we});function $e(){for(let e of te){let s=q.resolve(process.cwd(),e);if(Y.existsSync(s))return!0}return!1}async function we(e){let s=await Se();if(s){let n=s(e);return n||{}}return null}async function xe(e){if(e.endsWith(".ts"))return(0,ee.createJiti)(F,{interopDefault:!0}).import(e);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 Se(){let e=process.cwd();for(let s of te){let n=q.resolve(e,s);if(Y.existsSync(n))try{let o=await xe(n),r=o.default||o;if(typeof r=="function")return r;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${s} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(o){console.error(`\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6 ${s} \u5931\u8D25:`,o)}}return null}var Y,q,Z,ee,te,ne=D(()=>{"use strict";x();Y=P(require("fs")),q=P(require("path")),Z=require("url"),ee=require("jiti"),te=["multipage.config.ts","multipage.config.js","multipage.config.mjs"]});var oe={};T(oe,{DEFAULT_CONFIG:()=>C,isEmptyConfig:()=>Ce,mergeWithDefaults:()=>ve});function ve(e){if(!e)return{...C};let s=e.strategies??e.buildStrategies??C.strategies;return{entry:e.entry??C.entry,exclude:e.exclude??C.exclude,template:e.template??C.template,placeholder:e.placeholder??C.placeholder,debug:e.debug??C.debug,strategies:s,pageConfigs:e.pageConfigs??C.pageConfigs,__forceBuildStrategy:e.__forceBuildStrategy}}function Ce(e){if(Object.keys(e).length===0)return!0;let s=e.entry&&e.entry!==C.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!s&&!n&&!o}var C,re=D(()=>{"use strict";x();C={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,strategies:{default:{}},pageConfigs:{}}});var _e={};T(_e,{buildAll:()=>ae});module.exports=ue(_e);x();var ie=require("child_process"),a=P(require("fs")),h=P(require("path")),B=P(require("glob"));k();function Pe(){let e=process.argv.slice(2),s=[],n=!1,o,r,u=3,y=!0;for(let c=0;c<e.length;c++){let t=e[c];if(t==="--debug")n=!0;else if(t==="--cwd")o=e[++c];else if(t==="--strategy")r=e[++c].split(",").map(g=>g.trim());else if(t==="--concurrency"){let i=e[++c];u=parseInt(i,10),(isNaN(u)||u<1)&&(console.error("\u274C \u5E76\u53D1\u6570\u5FC5\u987B\u662F\u5927\u4E8E0\u7684\u6574\u6570"),process.exit(1))}else t==="--flatten"?y=!0:t==="--no-flatten"?y=!1:t==="--help"||t==="-h"?(console.log(`
121
3
  \u4F7F\u7528\u65B9\u6CD5: vite-mp [\u9009\u9879]
122
4
 
123
5
  \u9009\u9879:
124
6
  --debug \u542F\u7528\u8C03\u8BD5\u6A21\u5F0F
125
7
  --cwd <dir> \u6307\u5B9A\u5DE5\u4F5C\u76EE\u5F55
126
8
  --strategy <list> \u6307\u5B9A\u6784\u5EFA\u7B56\u7565\uFF0C\u652F\u6301\u9017\u53F7\u5206\u9694\u591A\u4E2A\u7B56\u7565
9
+ --concurrency <num> \u5E76\u53D1\u6784\u5EFA\u6570\uFF08\u9ED8\u8BA4\uFF1A3\uFF09
10
+ --flatten \u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784\uFF08\u9ED8\u8BA4\u542F\u7528\uFF09
11
+ --no-flatten \u7981\u7528\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784
127
12
  --help, -h \u663E\u793A\u5E2E\u52A9\u4FE1\u606F
128
13
 
129
14
  \u5176\u4ED6\u6240\u6709\u53C2\u6570\u5C06\u4F20\u9012\u7ED9 vite build \u547D\u4EE4
130
15
 
131
16
  \u793A\u4F8B:
132
- vite-mp # \u6784\u5EFA\u6240\u6709\u7B56\u7565
17
+ vite-mp # \u6784\u5EFA\u6240\u6709\u7B56\u7565\uFF08\u9ED8\u8BA4\u6241\u5E73\u5316\uFF09
133
18
  vite-mp --strategy mobile # \u53EA\u6784\u5EFAmobile\u7B56\u7565
134
19
  vite-mp --strategy mobile,tablet # \u6784\u5EFAmobile\u548Ctablet\u7B56\u7565
20
+ vite-mp --no-flatten # \u7981\u7528\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784
21
+ vite-mp --concurrency 2 # \u8BBE\u7F6E\u5E76\u53D1\u6570\u4E3A2
135
22
  vite-mp --debug # \u542F\u7528\u8C03\u8BD5\u6A21\u5F0F
136
23
  vite-mp --cwd example # \u5728example\u76EE\u5F55\u8FD0\u884C
137
24
  vite-mp --mode production --debug # \u4F20\u9012\u989D\u5916\u53C2\u6570\u7ED9vite
138
- `),process.exit(0)):c!=="build"&&t.push(c)}return{viteBuildArgs:t,debug:r,cwd:n,strategies:s}}async function Je(){let{loadUserConfig:e,hasCustomConfig:t}=await Promise.resolve().then(()=>(ce(),ve)),{mergeWithDefaults:r}=await Promise.resolve().then(()=>(te(),xe)),n=null;return t()&&(n=await e({mode:"production",command:"build",isCLI:!0}),n||console.log("\u274C \u914D\u7F6E\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25")),r(n)}function Qe(e,t,r){return new Promise(n=>{var g;let s=r?console.log.bind(console,`[${e}]`):()=>{};s(`\u5F00\u59CB\u6784\u5EFA\u7B56\u7565: ${e}`);let l={...process.env,VITE_MULTI_PAGE_STRATEGY:e},c=["build",...t];s(`\u6267\u884C\u547D\u4EE4: npx vite ${c.join(" ")}`);let i=(0,fe.spawn)("npx",["vite",...c],{stdio:r?"inherit":"pipe",env:l,cwd:process.cwd(),shell:process.platform==="win32"}),f="";r||(g=i.stderr)==null||g.on("data",m=>{f+=m.toString()}),i.on("close",m=>{let a=m===0,u=L(t);if(a){s(`\u2705 \u7B56\u7565 ${e} \u6784\u5EFA\u6210\u529F`);try{if(d.existsSync(u)){let o=d.readdirSync(u);for(let p of o)if(p.startsWith(".temp.mp.")&&p.endsWith(".html")){let y=x.resolve(u,p),S=`${p.replace(/^\.temp\.mp\./,"").replace(/\.html$/,"")}.html`,$=x.resolve(u,S);d.renameSync(y,$),s(`\u91CD\u547D\u540DHTML: ${p} -> ${S}`)}}}catch(o){s("\u91CD\u547D\u540DHTML\u6587\u4EF6\u5931\u8D25:",o)}}else s(`\u274C \u7B56\u7565 ${e} \u6784\u5EFA\u5931\u8D25 (\u9000\u51FA\u7801: ${m})`),!r&&f&&console.error(`\u7B56\u7565 ${e} \u9519\u8BEF\u8F93\u51FA:`,f);n({strategy:e,success:a,error:a?void 0:f||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${m}`,outputDir:u})}),i.on("error",m=>{s(`\u274C \u7B56\u7565 ${e} \u6784\u5EFA\u51FA\u9519:`,m.message);let a=L(t);n({strategy:e,success:!1,error:m.message,outputDir:a})})})}function Ke(e,t,r,n,s,l){return new Promise(c=>{var o;let i=r?console.log.bind(console,`[${e}]`):()=>{};i(`\u5F00\u59CB\u6784\u5EFA\u9875\u9762: ${e}`);let f=x.resolve(process.cwd(),`dist-temp-${e}`),g={...process.env,VITE_MULTI_PAGE_BUILD_SINGLE_PAGE:e,VITE_MULTI_PAGE_TEMP_OUTPUT_DIR:f,VITE_MULTI_PAGE_STRATEGY:n,VITE_MULTI_PAGE_CURRENT_PAGE:e,VITE_MULTI_PAGE_MERGE_MODE:s.merge||"all"};if(s.pageEnvs&&typeof s.pageEnvs=="function")try{let p={pageName:e,filePath:l.file,relativePath:x.relative(process.cwd(),l.file),strategy:n},y=s.pageEnvs(p);if(y&&typeof y=="object"){for(let[v,S]of Object.entries(y))g[v]=String(S);i("\u6CE8\u5165\u81EA\u5B9A\u4E49\u73AF\u5883\u53D8\u91CF:",Object.keys(y))}}catch(p){i("\u8B66\u544A: \u83B7\u53D6\u9875\u9762\u73AF\u5883\u53D8\u91CF\u5931\u8D25:",p)}let m=["build","--outDir",f,...t];i(`\u6267\u884C\u547D\u4EE4: npx vite ${m.join(" ")}`);let a=(0,fe.spawn)("npx",["vite",...m],{stdio:r?"inherit":"pipe",env:g,cwd:process.cwd(),shell:process.platform==="win32"}),u="";r||(o=a.stderr)==null||o.on("data",p=>{u+=p.toString()}),a.on("close",p=>{let y=p===0;y?i(`\u2705 \u9875\u9762 ${e} \u6784\u5EFA\u6210\u529F`):(i(`\u274C \u9875\u9762 ${e} \u6784\u5EFA\u5931\u8D25 (\u9000\u51FA\u7801: ${p})`),!r&&u&&console.error(`\u9875\u9762 ${e} \u9519\u8BEF\u8F93\u51FA:`,u)),c({pageName:e,success:y,error:y?void 0:u||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${p}`,outputDir:f})}),a.on("error",p=>{i(`\u274C \u9875\u9762 ${e} \u6784\u5EFA\u51FA\u9519:`,p.message),c({pageName:e,success:!1,error:p.message,outputDir:f})})})}async function Xe(e,t,r){let n=r?console.log.bind(console,"[merge]"):()=>{};n("\u5F00\u59CB\u5408\u5E76\u6784\u5EFA\u7ED3\u679C...");let s=t.merge||"all";n(`\u4F7F\u7528\u5408\u5E76\u6A21\u5F0F: ${s}`),s==="all"?await De(e,r):s==="page"&&await et(e,t,r)}async function Ze(e,t,r){let n=r?console.log.bind(console,"[merge]"):()=>{},s=x.resolve(process.cwd(),"dist"),l=x.resolve(process.cwd(),".temp-merge");d.existsSync(l)&&d.rmSync(l,{recursive:!0,force:!0}),d.mkdirSync(l,{recursive:!0});for(let i of e){if(!i.success)continue;let f=i.outputDir;if(!d.existsSync(f)){n(`\u8B66\u544A: \u9875\u9762\u6784\u5EFA\u76EE\u5F55\u4E0D\u5B58\u5728: ${f}`);continue}let g=x.resolve(l,i.pageName);d.mkdirSync(g,{recursive:!0});let m=d.readdirSync(f,{withFileTypes:!0});for(let a of m){let u=x.resolve(f,a.name);if(a.isFile())if(a.name.endsWith(".html")){let o=x.resolve(g,"index.html");d.copyFileSync(u,o)}else{let o=x.resolve(g,a.name);d.copyFileSync(u,o)}else if(a.isDirectory())if(a.name===i.pageName){let o=d.readdirSync(u,{withFileTypes:!0});for(let p of o){let y=x.resolve(u,p.name),v=x.resolve(g,p.name);p.isFile()?d.copyFileSync(y,v):p.isDirectory()&&d.cpSync(y,v,{recursive:!0})}}else{let o=x.resolve(g,a.name);d.cpSync(u,o,{recursive:!0})}}}let c=x.resolve(x.dirname(s),".dist-backup");d.existsSync(c)&&d.rmSync(c,{recursive:!0,force:!0}),d.existsSync(s)&&d.renameSync(s,c);try{d.renameSync(l,s)}catch{d.cpSync(l,s,{recursive:!0}),d.rmSync(l,{recursive:!0,force:!0})}d.existsSync(c)&&d.rmSync(c,{recursive:!0,force:!0});for(let i of e)i.outputDir&&d.existsSync(i.outputDir)&&d.rmSync(i.outputDir,{recursive:!0,force:!0})}async function De(e,t){let r=t?console.log.bind(console,"[merge]"):()=>{},n=x.resolve(process.cwd(),"dist"),s=x.resolve(n,"assets");d.existsSync(s)||d.mkdirSync(s,{recursive:!0});let l=[];for(let c of e){if(!c.success)continue;let i=x.resolve(n,c.strategy);if(!d.existsSync(i)){r(`\u8B66\u544A: \u7B56\u7565\u76EE\u5F55\u4E0D\u5B58\u5728: ${i}`);continue}r(`\u5904\u7406\u7B56\u7565: ${c.strategy}`);let f=d.readdirSync(i,{withFileTypes:!0});for(let g of f){let m=x.resolve(i,g.name);if(g.isFile())if(g.name.endsWith(".html")){let a=x.resolve(n,g.name);d.copyFileSync(m,a),l.push(g.name),r(`\u590D\u5236HTML: ${g.name} -> dist/${g.name}`)}else{let a=x.resolve(n,g.name);d.copyFileSync(m,a),r(`\u590D\u5236\u6587\u4EF6: ${g.name} -> dist/${g.name}`)}else if(g.isDirectory()&&g.name==="assets"){let a=m,u=d.readdirSync(a,{withFileTypes:!0});for(let o of u){let p=x.resolve(a,o.name),y=x.resolve(s,o.name);if(o.isFile())if(d.existsSync(y)){let v=d.readFileSync(p),S=d.readFileSync(y);if(v.equals(S))r(`\u8DF3\u8FC7\u91CD\u590D\u8D44\u6E90: ${o.name}`);else{let $=x.extname(o.name),P=`${x.basename(o.name,$)}-${c.strategy}${$}`,A=x.resolve(s,P);d.copyFileSync(p,A),r(`\u590D\u5236\u8D44\u6E90(\u91CD\u547D\u540D): ${o.name} -> assets/${P}`)}}else d.copyFileSync(p,y),r(`\u590D\u5236\u8D44\u6E90: ${o.name} -> assets/${o.name}`);else if(o.isDirectory()){let v=x.resolve(s,o.name);d.existsSync(v)||d.mkdirSync(v,{recursive:!0}),d.cpSync(p,v,{recursive:!0}),r(`\u590D\u5236\u8D44\u6E90\u76EE\u5F55: ${o.name} -> assets/${o.name}`)}}}else if(g.isDirectory()){let a=x.resolve(n,g.name);d.cpSync(m,a,{recursive:!0}),r(`\u590D\u5236\u76EE\u5F55: ${g.name} -> dist/${g.name}`)}}}r("\u2705 \u6784\u5EFA\u7ED3\u679C\u5408\u5E76\u5B8C\u6210"),r(`\u{1F4C1} \u751F\u6210\u9875\u9762: ${l.join(", ")}`),r("\u{1F4E6} \u8D44\u6E90\u76EE\u5F55: dist/assets/"),r(`\u{1F527} \u5904\u7406\u7B56\u7565: ${e.filter(c=>c.success).map(c=>c.strategy).join(", ")}`)}async function et(e,t,r){let n=r?console.log.bind(console,"[merge]"):()=>{};await De(e,r);let s=x.resolve(process.cwd(),"dist"),l=t.merge;n(`\u5E94\u7528${l}\u6A21\u5F0F\u7684\u8D44\u6E90\u91CD\u7EC4...`);try{let{reorganizeAssetsInCLI:c}=await Promise.resolve().then(()=>(Oe(),_e));await c(s,l,t,n),n(`\u2705 ${l}\u6A21\u5F0F\u8D44\u6E90\u91CD\u7EC4\u5B8C\u6210`)}catch(c){throw n("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",c),c}}async function ge(e){let t=se.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let r of t){let n=x.resolve(process.cwd(),r);try{d.unlinkSync(n)}catch{}}}async function tt(e,t,r){let n=r?console.log.bind(console,"[cleanup]"):()=>{};n("\u6E05\u7406\u4E34\u65F6\u6587\u4EF6...");let s=t.merge||"all",l=se.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let c of l){let i=x.resolve(process.cwd(),c);try{d.unlinkSync(i),n(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6: ${c}`)}catch(f){n(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${c}`,f)}}for(let c of e){let i=x.resolve(process.cwd(),"dist",c);if(d.existsSync(i)){let f=se.sync("*.mp.temp.html",{cwd:i});for(let g of f){let m=x.resolve(i,g);try{d.unlinkSync(m),n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6: ${c}/${g}`)}catch(a){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${c}/${g}`,a)}}}}if(s==="all"){let c=x.resolve(process.cwd(),"dist");for(let i of e){let f=x.resolve(c,i);if(d.existsSync(f))try{d.rmSync(f,{recursive:!0,force:!0}),n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55: ${i}`)}catch(g){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u5931\u8D25: ${i}`,g)}}}else n(`\u4FDD\u7559\u7B56\u7565\u76EE\u5F55 (merge\u6A21\u5F0F: ${s})`);n("\u2705 \u6E05\u7406\u5B8C\u6210")}async function Me(){let{viteBuildArgs:e,debug:t,cwd:r,strategies:n}=qe(),s=t?console.log.bind(console,"[main]"):()=>{};if(r){let l=x.resolve(process.cwd(),r);d.existsSync(l)||(console.error(`\u274C \u6307\u5B9A\u7684\u76EE\u5F55\u4E0D\u5B58\u5728: ${l}`),process.exit(1)),process.chdir(l),s(`\u5207\u6362\u5DE5\u4F5C\u76EE\u5F55\u5230: ${l}`)}try{s("\u{1F4CB} \u52A0\u8F7D\u914D\u7F6E...");let l=await Je(),c=l.merge||"all";s("\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55...");let{cleanViteOutputDirectory:i}=await Promise.resolve().then(()=>(U(),X));i(e),c==="page"?await st(l,e,t):await nt(l,e,t,n)}catch(l){console.error("\u274C \u6784\u5EFA\u5931\u8D25:",l instanceof Error?l.message:l),process.exit(1)}}async function st(e,t,r){let n=r?console.log.bind(console,"[page-mode]"):()=>{};n("\u{1F680} \u5F00\u59CBPage\u6A21\u5F0F\u6784\u5EFA...");let{discoverPages:s}=await Promise.resolve().then(()=>(U(),X)),l=s({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(l.length===0)throw new Error("\u672A\u627E\u5230\u4EFB\u4F55\u9875\u9762");n(`\u53D1\u73B0\u9875\u9762: ${l.map(o=>o.name).join(", ")}`);let{getPageConfig:c}=await Promise.resolve().then(()=>(J(),ue)),i=new Map;for(let o of l){let p={pageName:o.name,filePath:o.file,relativePath:x.relative(process.cwd(),o.file)},y=c(e.pageConfigs,p,()=>{}),v=(y==null?void 0:y.strategy)||"default";i.set(o.name,v)}n("\u{1F528} \u5F00\u59CB\u5E76\u884C\u6784\u5EFA\u9875\u9762...");let f=l.map(o=>{let p=i.get(o.name)||"default";return Ke(o.name,t,r,p,e,o)}),g=await Promise.all(f),m=g.filter(o=>o.success).length,a=g.length-m;console.log(`
139
- \u{1F4CA} \u9875\u9762\u6784\u5EFA\u7ED3\u679C\u7EDF\u8BA1:`),console.log(`\u2705 \u6210\u529F: ${m}`),console.log(`\u274C \u5931\u8D25: ${a}`),a>0&&(console.log(`
140
- \u274C \u5931\u8D25\u7684\u9875\u9762:`),g.filter(o=>!o.success).forEach(o=>{console.log(` - ${o.pageName}: ${o.error}`)}),await ge(r),process.exit(1)),await Ze(g,e,r),await ge(r);let u=g.filter(o=>o.success);console.log(`
141
- \u{1F389} \u6240\u6709\u9875\u9762\u6784\u5EFA\u6210\u529F\uFF01`),console.log("\u{1F4C1} \u6784\u5EFA\u7ED3\u679C\u4F4D\u4E8E: dist/"),console.log(`\u{1F4E6} \u6784\u5EFA\u9875\u9762: ${u.map(o=>o.pageName).join(", ")}`)}async function nt(e,t,r,n){let s=r?console.log.bind(console,"[strategy-mode]"):()=>{};s("\u{1F680} \u5F00\u59CB\u7B56\u7565\u6A21\u5F0F\u6784\u5EFA...");let{getAvailableStrategies:l}=await Promise.resolve().then(()=>(U(),X)),c=l({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(c.length===0)throw new Error("\u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565");let i;if(n&&n.length>0){let p=n.filter(y=>!c.includes(y));if(p.length>0)throw new Error(`\u6307\u5B9A\u7684\u7B56\u7565\u4E0D\u5B58\u5728: ${p.join(", ")}
142
- \u53EF\u7528\u7B56\u7565: ${c.join(", ")}`);i=n,s(`\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${i.join(", ")}`)}else i=c,s(`\u6784\u5EFA\u6240\u6709\u53EF\u7528\u7B56\u7565: ${i.join(", ")}`);s("\u{1F528} \u5F00\u59CB\u5E76\u884C\u6784\u5EFA...");let f=i.map(p=>Qe(p,t,r)),g=await Promise.all(f),m=g.filter(p=>p.success).length,a=g.length-m;console.log(`
143
- \u{1F4CA} \u6784\u5EFA\u7ED3\u679C\u7EDF\u8BA1:`),console.log(`\u2705 \u6210\u529F: ${m}`),console.log(`\u274C \u5931\u8D25: ${a}`),a>0&&(console.log(`
144
- \u274C \u5931\u8D25\u7684\u7B56\u7565:`),g.filter(p=>!p.success).forEach(p=>{console.log(` - ${p.strategy}: ${p.error}`)}),await ge(r),process.exit(1)),s("\u{1F4E6} \u5408\u5E76\u6784\u5EFA\u7ED3\u679C..."),await Xe(g,e,r),await tt(i,e,r);let u=g.filter(p=>p.success),o=d.readdirSync(x.resolve(process.cwd(),"dist")).filter(p=>p.endsWith(".html"));console.log(`
145
- \u{1F389} \u6240\u6709\u7B56\u7565\u6784\u5EFA\u6210\u529F\uFF01`),console.log("\u{1F4C1} \u6784\u5EFA\u7ED3\u679C\u4F4D\u4E8E: dist/"),console.log(`\u{1F310} \u751F\u6210\u7684\u9875\u9762: ${o.join(", ")}`),console.log(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${u.map(p=>p.strategy).join(", ")}`)}require.main===module&&Me().catch(e=>{console.error("\u274C \u672A\u5904\u7406\u7684\u9519\u8BEF:",e),process.exit(1)});0&&(module.exports={buildAll});
25
+ `),process.exit(0)):t!=="build"&&s.push(t)}return{viteBuildArgs:s,debug:n,cwd:o,strategies:r,concurrency:u,flatten:y}}async function Fe(){let{loadUserConfig:e,hasCustomConfig:s}=await Promise.resolve().then(()=>(ne(),se)),{mergeWithDefaults:n}=await Promise.resolve().then(()=>(re(),oe)),o=null;return s()&&(o=await e({mode:"production",command:"build",isCLI:!0}),o||console.log("\u274C \u914D\u7F6E\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25")),n(o)}function Oe(e,s,n){return new Promise(o=>{let r=n?console.log.bind(console,`[${e}]`):()=>{},u={...process.env,VITE_MULTI_PAGE_STRATEGY:e},y=["build",...s],c=(0,ie.spawn)("npx",["vite",...y],{stdio:n?"inherit":"pipe",env:u,cwd:process.cwd(),shell:process.platform==="win32"}),t="";n||c.stderr?.on("data",i=>{t+=i.toString()}),c.on("close",i=>{let g=i===0,l=h.resolve(process.cwd(),"dist",e);if(g)try{if(a.existsSync(l)){let m=a.readdirSync(l);for(let p of m)if(p.startsWith(".temp.mp.")&&p.endsWith(".html")){let f=h.resolve(l,p),b=`${p.replace(/^\.temp\.mp\./,"").replace(/\.html$/,"")}.html`,$=h.resolve(l,b);a.renameSync(f,$)}}}catch(m){r("\u91CD\u547D\u540DHTML\u6587\u4EF6\u5931\u8D25:",m)}else!n&&t&&console.error(`\u7B56\u7565 ${e} \u9519\u8BEF\u8F93\u51FA:`,t);o({strategy:e,success:g,error:g?void 0:t||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${i}`,outputDir:l})}),c.on("error",i=>{r(`\u274C \u7B56\u7565 ${e} \u6784\u5EFA\u51FA\u9519:`,i.message);let g=L(s);o({strategy:e,success:!1,error:i.message,outputDir:g})})})}async function De(e){let s=B.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let n of s){let o=h.resolve(process.cwd(),n);try{a.unlinkSync(o)}catch{}}}async function je(e,s){let n=s?console.log.bind(console,"[flatten]"):()=>{},o=h.resolve(process.cwd(),"dist");if(!a.existsSync(o))return;n("\u5F00\u59CB\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784...");let r=[];for(let t of e){let i=h.resolve(o,t);if(a.existsSync(i)){let g=a.readdirSync(i);for(let l of g)if(l.endsWith(".html")){let m=h.resolve(i,l),p=h.resolve(o,l),f=a.existsSync(p)?h.resolve(o,`${t}-${l}`):p;a.renameSync(m,f),r.push(h.basename(f)),n(`\u79FB\u52A8HTML: ${t}/${l} -> ${h.basename(f)}`)}}}let u=h.resolve(o,"assets");if(a.existsSync(u)){let t=h.resolve(o,"assets-backup");a.existsSync(t)&&a.rmSync(t,{recursive:!0}),a.renameSync(u,t)}a.mkdirSync(u,{recursive:!0});let y=new Set;for(let t of e){let i=h.resolve(o,t);if(a.existsSync(i)){let g=h.resolve(i,"assets");if(a.existsSync(g)){let l=a.readdirSync(g);for(let m of l){let p=h.resolve(g,m),f=h.resolve(u,m);if(!y.has(m))a.renameSync(p,f),y.add(m),n(`\u79FB\u52A8\u8D44\u6E90: ${t}/assets/${m} -> assets/${m}`);else{let d=a.readFileSync(p),b=a.readFileSync(f);if(d.equals(b))a.unlinkSync(p),n(`\u5220\u9664\u91CD\u590D\u8D44\u6E90: ${t}/assets/${m} (\u5185\u5BB9\u76F8\u540C)`);else{let $=h.parse(m).name,w=h.parse(m).ext,j=`${$}-${t}${w}`,N=h.resolve(u,j);a.renameSync(p,N),n(`\u79FB\u52A8\u8D44\u6E90: ${t}/assets/${m} -> assets/${j} (\u5185\u5BB9\u4E0D\u540C)`)}}}}}}let c=new Set;for(let t of e){let i=h.resolve(o,t);if(a.existsSync(i)){let g=a.readdirSync(i);for(let l of g)if(!l.endsWith(".html")&&l!=="assets"){let m=h.resolve(i,l),p=h.resolve(o,l);a.statSync(m).isDirectory()?c.has(l)?(a.rmSync(m,{recursive:!0}),n(`\u5220\u9664\u91CD\u590D\u76EE\u5F55: ${t}/${l}`)):(a.existsSync(p)&&a.rmSync(p,{recursive:!0}),a.renameSync(m,p),c.add(l),n(`\u79FB\u52A8\u76EE\u5F55: ${t}/${l} -> ${l}`)):c.has(l)?(a.unlinkSync(m),n(`\u5220\u9664\u91CD\u590D\u6587\u4EF6: ${t}/${l}`)):(a.renameSync(m,p),c.add(l),n(`\u79FB\u52A8\u6587\u4EF6: ${t}/${l} -> ${l}`))}}}for(let t of r){let i=h.resolve(o,t);if(a.existsSync(i)){let g=a.readFileSync(i,"utf-8"),l="default";t==="mobile.html"?l="mobile":t==="tablet.html"?l="tablet":t.startsWith("mobile-")?l="mobile":t.startsWith("tablet-")&&(l="tablet");let m=h.resolve(o,"assets");if(a.existsSync(m)){let p=a.readdirSync(m);for(let f of p)if(f.includes(`-${l}`)){let b=f.replace(`-${l}`,"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),$=new RegExp(`\\./assets/${b}(?=\\s|>|"|')`,"g");g=g.replace($,`./assets/${f}`)}}a.writeFileSync(i,g),n(`\u66F4\u65B0\u8D44\u6E90\u8DEF\u5F84: ${t} -> assets/`)}}for(let t of e){let i=h.resolve(o,t);if(a.existsSync(i))try{a.rmSync(i,{recursive:!0}),n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55: ${t}`)}catch(g){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u5931\u8D25: ${t}`,g)}}n("\u6241\u5E73\u5316\u5B8C\u6210")}async function Ee(e,s){let n=s?console.log.bind(console,"[cleanup]"):()=>{},o=B.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let r of o){let u=h.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=h.resolve(process.cwd(),"dist",r);if(a.existsSync(u)){let y=B.sync("*.mp.temp.html",{cwd:u});for(let c of y){let t=h.resolve(u,c);try{a.unlinkSync(t)}catch(i){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${r}/${c}`,i)}}}}}async function ae(){let{viteBuildArgs:e,debug:s,cwd:n,strategies:o,concurrency:r,flatten:u}=Pe(),y=s?console.log.bind(console,"[main]"):()=>{};if(n){let c=h.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 Fe(),{cleanViteOutputDirectory:t}=await Promise.resolve().then(()=>(k(),H));t(e),await Ne(c,e,s,o,r,u)}catch(c){console.error("\u274C \u6784\u5EFA\u5931\u8D25:",c instanceof Error?c.message:c),process.exit(1)}}async function Ne(e,s,n,o,r=3,u=!1){let y=n?console.log.bind(console,"[strategy-mode]"):()=>{},{getAvailableStrategies:c}=await Promise.resolve().then(()=>(k(),H)),t=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(t.length===0)throw new Error("\u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565");let i;if(o&&o.length>0){let f=o.filter(d=>!t.includes(d));if(f.length>0)throw new Error(`\u6307\u5B9A\u7684\u7B56\u7565\u4E0D\u5B58\u5728: ${f.join(", ")}
26
+ \u53EF\u7528\u7B56\u7565: ${t.join(", ")}`);i=o}else i=t;y(`\u{1F680} \u5F00\u59CB\u6784\u5EFA\u7B56\u7565: ${i.join(", ")} (\u5E76\u53D1\u6570: ${r})`);let g=[];for(let f=0;f<i.length;f+=r){let d=i.slice(f,f+r),b=d.map(w=>Oe(w,s,n)),$=await Promise.all(b);g.push(...$),n&&y(`\u6279\u6B21 ${Math.floor(f/r)+1} \u5B8C\u6210: ${d.join(", ")}`)}let l=g.filter(f=>f.success).length;g.length-l>0&&(console.log(`
27
+ \u274C \u6784\u5EFA\u5931\u8D25:`),g.filter(f=>!f.success).forEach(f=>{console.log(` - ${f.strategy}: ${f.error}`)}),await De(n),process.exit(1)),u&&await je(i,n),await Ee(i,n);let p=g.filter(f=>f.success);if(console.log(`
28
+ \u{1F389} \u6784\u5EFA\u6210\u529F\uFF01`),console.log(`\u{1F4E6} \u7B56\u7565: ${p.map(f=>f.strategy).join(", ")}`),u){console.log("\u{1F4C1} \u8F93\u51FA\u7ED3\u6784: \u6241\u5E73\u5316");let f=h.resolve(process.cwd(),"dist");if(a.existsSync(f)){let d=a.readdirSync(f).filter(b=>b.endsWith(".html"));console.log(` - HTML\u6587\u4EF6: ${d.join(", ")}`)}}else for(let f of p){let d=h.resolve(process.cwd(),"dist",f.strategy);if(a.existsSync(d)){let b=a.readdirSync(d).filter($=>$.endsWith(".html"));console.log(` - ${f.strategy}: ${b.join(", ")}`)}}}require.main===module&&ae().catch(e=>{console.error("\u274C \u672A\u5904\u7406\u7684\u9519\u8BEF:",e),process.exit(1)});0&&(module.exports={buildAll});
package/dist/index.d.mts CHANGED
@@ -6,11 +6,9 @@ interface MultiPageOptions {
6
6
  template?: string;
7
7
  placeholder?: string;
8
8
  debug?: boolean;
9
- merge?: 'all' | 'page';
10
9
  strategies?: Record<string, ConfigStrategy>;
11
10
  buildStrategies?: Record<string, ConfigStrategy>;
12
11
  pageConfigs?: Record<string, PageConfig> | PageConfigFunction;
13
- pageEnvs?: PageEnvFunction;
14
12
  __forceBuildStrategy?: string;
15
13
  }
16
14
  type Options = MultiPageOptions;
@@ -19,15 +17,11 @@ interface BuildConfigOptions {
19
17
  exclude: string[];
20
18
  template: string;
21
19
  placeholder: string;
22
- merge?: 'all' | 'page';
23
20
  strategies?: Record<string, ConfigStrategy>;
24
21
  pageConfigs?: Record<string, PageConfig> | PageConfigFunction;
25
- pageEnvs?: PageEnvFunction;
26
22
  forceBuildStrategy?: string;
27
- forceBuildPage?: string;
28
- }
29
- interface ConfigStrategy extends Omit<UserConfig, 'plugins'> {
30
23
  }
24
+ type ConfigStrategy = Omit<UserConfig, 'plugins'>;
31
25
  interface PageConfig {
32
26
  strategy?: string;
33
27
  define?: Record<string, any>;
@@ -44,7 +38,6 @@ interface PageContext {
44
38
  isMatched?: boolean;
45
39
  }
46
40
  type PageConfigFunction = (context: PageContext) => PageConfig | null;
47
- type PageEnvFunction = (context: PageContext) => Record<string, string> | null;
48
41
  interface PluginContext {
49
42
  mode: string;
50
43
  command: 'build' | 'serve';
@@ -77,9 +70,5 @@ declare function getAvailableStrategies(options: BuildConfigOptions): string[];
77
70
  declare function mergeWithDefaults(userConfig: MultiPageOptions | null | undefined): MultiPageOptions;
78
71
 
79
72
  declare function viteMultiPage(transform?: ConfigTransformFunction): Plugin;
80
- /**
81
- * CLI工具专用的资源重组函数
82
- */
83
- declare function reorganizeAssetsInCLI(distDir: string, mode: 'strategy' | 'page', options: Options, log: (...args: any[]) => void): void;
84
73
 
85
- export { type ConfigFunction, type ConfigTransformFunction, type Options, type PageConfig, type PageContext, type PluginContext, cleanViteOutputDirectory, viteMultiPage as default, defineConfig, defineConfigTransform, generateBuildConfig, getAvailableStrategies, getViteOutputDirectory, mergeWithDefaults, reorganizeAssetsInCLI, viteMultiPage };
74
+ export { type ConfigFunction, type ConfigTransformFunction, type Options, type PageConfig, type PageContext, type PluginContext, cleanViteOutputDirectory, viteMultiPage as default, defineConfig, defineConfigTransform, generateBuildConfig, getAvailableStrategies, getViteOutputDirectory, mergeWithDefaults, viteMultiPage };
package/dist/index.d.ts CHANGED
@@ -6,11 +6,9 @@ interface MultiPageOptions {
6
6
  template?: string;
7
7
  placeholder?: string;
8
8
  debug?: boolean;
9
- merge?: 'all' | 'page';
10
9
  strategies?: Record<string, ConfigStrategy>;
11
10
  buildStrategies?: Record<string, ConfigStrategy>;
12
11
  pageConfigs?: Record<string, PageConfig> | PageConfigFunction;
13
- pageEnvs?: PageEnvFunction;
14
12
  __forceBuildStrategy?: string;
15
13
  }
16
14
  type Options = MultiPageOptions;
@@ -19,15 +17,11 @@ interface BuildConfigOptions {
19
17
  exclude: string[];
20
18
  template: string;
21
19
  placeholder: string;
22
- merge?: 'all' | 'page';
23
20
  strategies?: Record<string, ConfigStrategy>;
24
21
  pageConfigs?: Record<string, PageConfig> | PageConfigFunction;
25
- pageEnvs?: PageEnvFunction;
26
22
  forceBuildStrategy?: string;
27
- forceBuildPage?: string;
28
- }
29
- interface ConfigStrategy extends Omit<UserConfig, 'plugins'> {
30
23
  }
24
+ type ConfigStrategy = Omit<UserConfig, 'plugins'>;
31
25
  interface PageConfig {
32
26
  strategy?: string;
33
27
  define?: Record<string, any>;
@@ -44,7 +38,6 @@ interface PageContext {
44
38
  isMatched?: boolean;
45
39
  }
46
40
  type PageConfigFunction = (context: PageContext) => PageConfig | null;
47
- type PageEnvFunction = (context: PageContext) => Record<string, string> | null;
48
41
  interface PluginContext {
49
42
  mode: string;
50
43
  command: 'build' | 'serve';
@@ -77,9 +70,5 @@ declare function getAvailableStrategies(options: BuildConfigOptions): string[];
77
70
  declare function mergeWithDefaults(userConfig: MultiPageOptions | null | undefined): MultiPageOptions;
78
71
 
79
72
  declare function viteMultiPage(transform?: ConfigTransformFunction): Plugin;
80
- /**
81
- * CLI工具专用的资源重组函数
82
- */
83
- declare function reorganizeAssetsInCLI(distDir: string, mode: 'strategy' | 'page', options: Options, log: (...args: any[]) => void): void;
84
73
 
85
- export { type ConfigFunction, type ConfigTransformFunction, type Options, type PageConfig, type PageContext, type PluginContext, cleanViteOutputDirectory, viteMultiPage as default, defineConfig, defineConfigTransform, generateBuildConfig, getAvailableStrategies, getViteOutputDirectory, mergeWithDefaults, reorganizeAssetsInCLI, viteMultiPage };
74
+ export { type ConfigFunction, type ConfigTransformFunction, type Options, type PageConfig, type PageContext, type PluginContext, cleanViteOutputDirectory, viteMultiPage as default, defineConfig, defineConfigTransform, generateBuildConfig, getAvailableStrategies, getViteOutputDirectory, mergeWithDefaults, viteMultiPage };
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
- "use strict";var le=Object.create;var U=Object.defineProperty;var ge=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var fe=Object.getPrototypeOf,ue=Object.prototype.hasOwnProperty;var de=(t,e)=>{for(var i in e)U(t,i,{get:e[i],enumerable:!0})},J=(t,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of pe(e))!ue.call(t,n)&&n!==i&&U(t,n,{get:()=>e[n],enumerable:!(r=ge(e,n))||r.enumerable});return t};var $=(t,e,i)=>(i=t!=null?le(fe(t)):{},J(e||!t||!t.__esModule?U(i,"default",{value:t,enumerable:!0}):i,t)),me=t=>J(U({},"__esModule",{value:!0}),t);var Pe={};de(Pe,{cleanViteOutputDirectory:()=>ee,default:()=>Se,defineConfig:()=>se,defineConfigTransform:()=>ie,generateBuildConfig:()=>N,getAvailableStrategies:()=>te,getViteOutputDirectory:()=>Y,mergeWithDefaults:()=>D,reorganizeAssetsInCLI:()=>be,viteMultiPage:()=>ce});module.exports=me(Pe);var d=$(require("fs")),h=$(require("path")),q=require("vite");var w=$(require("path")),L=$(require("fs")),K=require("glob");var O=$(require("path"));function R(t,e,i,r){let n=[],p=new Map,u=e.replace(/\/\*.*$/,"");(!u||u===e)&&(u=O.dirname(e.split("*")[0]));let l=[];for(let a of t){if(i.includes(a))continue;let g=a.replace(/\\/g,"/"),f=u.replace(/\\/g,"/"),c=O.posix.relative(f,g).split("/");if(c.length===1){let o=c[0],m=O.posix.basename(o,O.posix.extname(o));l.push({name:m,file:a,priority:1})}else if(c.length>=2){let o=O.posix.basename(g,O.posix.extname(g)),m=c[0];o==="main"&&l.push({name:m,file:a,priority:2})}}for(let a of l){let g=p.get(a.name);g?a.priority>g.priority&&p.set(a.name,{file:a.file,priority:a.priority}):p.set(a.name,{file:a.file,priority:a.priority})}for(let[a,{file:g}]of p.entries())n.push({name:a,file:g});return n}function Q(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function k(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[r,n]of Object.entries(t)){if(r===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=>B(l,e.pageName)||B(l,e.relativePath)||B(l,e.filePath)))return i(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${n.match}):`,n),{...n,match:void 0};if(B(r,e.pageName))return i(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${r}):`,n),n}return null}function B(t,e){let i=t.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${i}$`).test(e)}function ye(t,e,i){try{let r=K.glob.sync(e.entry,{cwd:process.cwd()}),n=R(r,e.entry,e.exclude,i);if(n.length===0){i("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6");return}let p=e.devStrategy||t.config.__cliStrategy||t.config.strategy;p&&(i(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${p}`),n=n.filter(u=>{let l={pageName:u.name,filePath:u.file,relativePath:w.relative(process.cwd(),u.file),strategy:void 0,isMatched:!1},a=_(e.pageConfigs,l,i),g=(a==null?void 0:a.strategy)||"default";return p==="default"?g==="default":g===p}),i(`\u7B56\u7565 "${p}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${n.map(u=>u.name).join(", ")||"\u65E0"}`)),i("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",n),t.middlewares.use(async(u,l,a)=>{try{let f=(u.url||"").split("?")[0];if(f==="/"){let o=xe(n,e,i);l.statusCode=200,l.setHeader("Content-Type","text/html"),l.end(o);return}if(f.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!f.endsWith(".html")||f.startsWith("/@")||f.includes("__vite")||f.startsWith("/node_modules"))return a();let s="";if(f.endsWith(".html"))s=w.basename(f,".html");else if(f.startsWith("/")){let o=f.substring(1);if(n.find(m=>m.name===o))s=o;else{let m=o.split("/");if(m.length>1){let C=m[0];n.find(x=>x.name===C)&&(s=C,i(`History \u8DEF\u7531\u5339\u914D: ${f} -> ${C}`))}}}if(!s)return a();let c=n.find(o=>o.name===s);return c?he(l,c,e,i):a()}catch(g){i(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${g}`),a(g)}}),i("\u5F00\u53D1\u670D\u52A1\u5668\u914D\u7F6E\u5B8C\u6210")}catch(r){throw i(`\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668\u5931\u8D25: ${r}`),r}}function he(t,e,i,r){var f;let n={pageName:e.name,filePath:e.file,relativePath:w.relative(process.cwd(),e.file),strategy:void 0,isMatched:!1},p=_(i.pageConfigs,n,r);if(p!=null&&p.strategy)n.strategy=p.strategy;else if((f=i.appliedStrategies)!=null&&f.has(e.name)){let s=i.appliedStrategies.get(e.name);s&&(n.strategy=s)}let u="",l=w.resolve(process.cwd(),`${e.name}.html`);if(L.existsSync(l)?u=l:p!=null&&p.template?u=w.resolve(process.cwd(),p.template):u=w.resolve(process.cwd(),i.template),!L.existsSync(u)){t.statusCode=404,t.end("Template not found");return}let a=L.readFileSync(u,"utf-8");if(a.includes(i.placeholder)){let s=a;if(a=a.split(i.placeholder).join(`/${e.file}`),a===s){let c=Q(i.placeholder),o=new RegExp(c,"g");a=s.replace(o,`/${e.file}`),a===s&&(a=s.replace(/\{\{ENTRY_FILE\}\}/g,`/${e.file}`))}}if(p!=null&&p.define){let s=Object.entries(p.define).map(([c,o])=>{let m=typeof o=="string"?`"${o}"`:JSON.stringify(o);return`window.${c} = ${m};`}).join(`
2
- `);s&&(a=a.replace(/<\/head>/i,`<script type="text/javascript">
3
- ${s}
1
+ "use strict";var ae=Object.create;var R=Object.defineProperty;var ge=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var ce=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty;var fe=(t,e)=>{for(var r in e)R(t,r,{get:e[r],enumerable:!0})},z=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of le(e))!pe.call(t,i)&&i!==r&&R(t,i,{get:()=>e[i],enumerable:!(o=ge(e,i))||o.enumerable});return t};var S=(t,e,r)=>(r=t!=null?ae(ce(t)):{},z(e||!t||!t.__esModule?R(r,"default",{value:t,enumerable:!0}):r,t)),de=t=>z(R({},"__esModule",{value:!0}),t);var Pe={};fe(Pe,{cleanViteOutputDirectory:()=>X,default:()=>be,defineConfig:()=>ie,defineConfigTransform:()=>re,generateBuildConfig:()=>D,getAvailableStrategies:()=>Z,getViteOutputDirectory:()=>k,mergeWithDefaults:()=>T,viteMultiPage:()=>se});module.exports=de(Pe);var ue=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,x=ue();var oe=require("vite");var b=S(require("path")),E=S(require("fs")),q=require("glob");var w=S(require("path"));function F(t,e,r,o){let i=[],l=new Map,g=e.replace(/\/\*.*$/,"");(!g||g===e)&&(g=w.dirname(e.split("*")[0]));let s=[];for(let n of t){if(r.includes(n))continue;let a=n.replace(/\\/g,"/"),c=g.replace(/\\/g,"/"),u=w.posix.relative(c,a).split("/");if(u.length===1){let p=u[0],m=w.posix.basename(p,w.posix.extname(p));s.push({name:m,file:n,priority:1})}else if(u.length>=2){let p=w.posix.basename(a,w.posix.extname(a)),m=u[0];p==="main"&&s.push({name:m,file:n,priority:2})}}for(let n of s){let a=l.get(n.name);a?n.priority>a.priority&&l.set(n.name,{file:n.file,priority:n.priority}):l.set(n.name,{file:n.file,priority:n.priority})}for(let[n,{file:a}]of l.entries())i.push({name:n,file:a});return i}function J(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function j(t){return(...e)=>{t&&console.log("[vite-plugin-multi-page]",...e)}}function O(t,e,r){if(!t)return null;if(typeof t=="function")return t(e);for(let[o,i]of Object.entries(t)){if(o===e.pageName)return r(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${e.pageName}:`,i),i;if(i.match&&(Array.isArray(i.match)?i.match:[i.match]).some(s=>I(s,e.pageName)||I(s,e.relativePath)||I(s,e.filePath)))return r(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${i.match}):`,i),{...i,match:void 0};if(I(o,e.pageName))return r(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${o}):`,i),i}return null}function I(t,e){let r=t.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${r}$`).test(e)}function me(t,e,r){try{let o=q.glob.sync(e.entry,{cwd:process.cwd()}),i=F(o,e.entry,e.exclude,r);if(i.length===0){r("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6");return}let l=e.devStrategy||t.config.__cliStrategy||t.config.strategy;l&&(r(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${l}`),i=i.filter(g=>{let s={pageName:g.name,filePath:g.file,relativePath:b.relative(process.cwd(),g.file),strategy:void 0,isMatched:!1},a=O(e.pageConfigs,s,r)?.strategy||"default";return l==="default"?a==="default":a===l}),r(`\u7B56\u7565 "${l}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${i.map(g=>g.name).join(", ")||"\u65E0"}`)),r("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",i),t.middlewares.use(async(g,s,n)=>{try{let c=(g.url||"").split("?")[0];if(c==="/"){let p=he(i,e,r);s.statusCode=200,s.setHeader("Content-Type","text/html"),s.end(p);return}if(c.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!c.endsWith(".html")||c.startsWith("/@")||c.includes("__vite")||c.startsWith("/node_modules"))return n();let d="";if(c.endsWith(".html"))d=b.basename(c,".html");else if(c.startsWith("/")){let p=c.substring(1);if(i.find(m=>m.name===p))d=p;else{let m=p.split("/");if(m.length>1){let f=m[0];i.find(y=>y.name===f)&&(d=f,r(`History \u8DEF\u7531\u5339\u914D: ${c} -> ${f}`))}}}if(!d)return n();let u=i.find(p=>p.name===d);return u?ye(s,u,e,r):n()}catch(a){r(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${a}`),n(a)}}),r("\u5F00\u53D1\u670D\u52A1\u5668\u914D\u7F6E\u5B8C\u6210")}catch(o){throw r(`\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668\u5931\u8D25: ${o}`),o}}function ye(t,e,r,o){let i={pageName:e.name,filePath:e.file,relativePath:b.relative(process.cwd(),e.file),strategy:void 0,isMatched:!1},l=O(r.pageConfigs,i,o);if(l?.strategy)i.strategy=l.strategy;else if(r.appliedStrategies?.has(e.name)){let c=r.appliedStrategies.get(e.name);c&&(i.strategy=c)}let g="",s=b.resolve(process.cwd(),`${e.name}.html`);if(E.existsSync(s)?g=s:l?.template?g=b.resolve(process.cwd(),l.template):g=b.resolve(process.cwd(),r.template),!E.existsSync(g)){t.statusCode=404,t.end("Template not found");return}let n=E.readFileSync(g,"utf-8");if(n.includes(r.placeholder)){let c=n;if(n=n.split(r.placeholder).join(`/${e.file}`),n===c){let d=J(r.placeholder),u=new RegExp(d,"g");n=c.replace(u,`/${e.file}`),n===c&&(n=c.replace(/\{\{ENTRY_FILE\}\}/g,`/${e.file}`))}}if(l?.define){let c=Object.entries(l.define).map(([d,u])=>{let p=typeof u=="string"?`"${u}"`:JSON.stringify(u);return`window.${d} = ${p};`}).join(`
2
+ `);c&&(n=n.replace(/<\/head>/i,`<script type="text/javascript">
3
+ ${c}
4
4
  </script>
5
- </head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(a)}var X=ye;function xe(t,e,i){try{let r=t.map(n=>{var g;let p={pageName:n.name,filePath:n.file,relativePath:w.relative(process.cwd(),n.file),strategy:void 0,isMatched:!1},u=_(e.pageConfigs,p,i),l="default";if(u!=null&&u.strategy)l=u.strategy;else if((g=e.appliedStrategies)!=null&&g.has(n.name)){let f=e.appliedStrategies.get(n.name);f&&(l=f)}let a=l!=="default"?`<span class="badge">${l}</span>`:"";return`
5
+ </head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(n)}var Q=me;function he(t,e,r){try{let o=t.map(i=>{let l={pageName:i.name,filePath:i.file,relativePath:b.relative(process.cwd(),i.file),strategy:void 0,isMatched:!1},g=O(e.pageConfigs,l,r),s="default";if(g?.strategy)s=g.strategy;else if(e.appliedStrategies?.has(i.name)){let a=e.appliedStrategies.get(i.name);a&&(s=a)}let n=s!=="default"?`<span class="badge">${s}</span>`:"";return`
6
6
  <div class="page-item">
7
- <a href="${n.name}.html" class="page-link">
8
- ${n.name}${a}
7
+ <a href="${i.name}.html" class="page-link">
8
+ ${i.name}${n}
9
9
  </a>
10
- <div class="page-path">${n.file}</div>
10
+ <div class="page-path">${i.file}</div>
11
11
  </div>`}).join("");return`
12
12
  <!DOCTYPE html>
13
13
  <html lang="en">
@@ -83,11 +83,11 @@ ${s}
83
83
  \u627E\u5230 ${t.length} \u4E2A\u9875\u9762
84
84
  </div>
85
85
  <div class="page-list">
86
- ${r}
86
+ ${o}
87
87
  </div>
88
88
  </body>
89
89
  </html>
90
- `}catch(r){return i(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${r}`),`
90
+ `}catch(o){return r(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${o}`),`
91
91
  <!DOCTYPE html>
92
92
  <html>
93
93
  <head>
@@ -95,13 +95,10 @@ ${s}
95
95
  </head>
96
96
  <body>
97
97
  <h1>\u751F\u6210\u7D22\u5F15\u9875\u65F6\u53D1\u751F\u9519\u8BEF</h1>
98
- <p>${r}</p>
98
+ <p>${o}</p>
99
99
  </body>
100
100
  </html>
101
- `}}var Z=require("vite"),W=require("glob"),P=$(require("path")),E=$(require("fs"));function N(t){var s;let{entry:e="src/pages/*/main.{ts,js}",exclude:i=[],template:r="index.html",placeholder:n="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:p={},pageConfigs:u={},forceBuildStrategy:l,forceBuildPage:a}=t,g=k(!0),f={};try{let c=W.glob.sync(e,{cwd:process.cwd()}),o=R(c,e,i,g);if(o.length===0)return g("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let m=new Map,C=new Map;for(let y of o){let v={pageName:y.name,filePath:y.file,relativePath:P.relative(process.cwd(),y.file)},S=_(u,v,g),b=(S==null?void 0:S.strategy)||"default";m.set(y.name,b),C.has(b)||C.set(b,[]),(s=C.get(b))==null||s.push(y.name)}if(g(`\u{1F4C4} \u53D1\u73B0 ${o.length} \u4E2A\u9875\u9762: ${o.map(y=>y.name).join(", ")}`),a){if(!o.find(I=>I.name===a))return g(`\u8B66\u544A: \u672A\u627E\u5230\u9875\u9762 "${a}"`),{};let v=m.get(a)||"default",S=p[v]||{},b=V(`single-${a}`,[a],o,S,u,r,n,g);return f[`single-${a}`]=b,f}if(l){let y=C.get(l)||[];if(y.length===0)return g(`\u8B66\u544A: \u7B56\u7565 "${l}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};g(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${l}, \u9875\u9762: ${y.join(", ")}`);let v=V(l,y,o,p[l],u,r,n,g);return f[l]=v,f}for(let[y,v]of C){if(v.length===0)continue;let S=p[y]||{},b=V(y,v,o,S,u,r,n,g);f[y]=b}if(Object.keys(f).length===0){g("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let y=o.map(S=>S.name),v=V("default",y,o,{},u,r,n,g);f.default=v}let x=Object.keys(f);return g(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${x.join(", ")}`),f}catch(c){throw g("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",c),c}}function V(t,e,i,r,n,p,u,l){let a={},g=[],f={};for(let o of e){let m=i.find(G=>G.name===o);if(!m)continue;let C={pageName:o,filePath:m.file,relativePath:P.relative(process.cwd(),m.file),strategy:t},x=_(n,C,l);x!=null&&x.define&&Object.assign(f,x.define);let y=p,v=`${o}.html`;E.existsSync(P.resolve(process.cwd(),v))?y=v:x!=null&&x.template&&(y=x.template);let S=P.resolve(process.cwd(),y);if(!E.existsSync(S)){l(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${y}`);continue}let b=E.readFileSync(S,"utf-8");if(b.includes(u)){let G=`./${m.file}`;b=b.replace(new RegExp(u.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),G)}let I=P.resolve(process.cwd(),`.temp.mp.${o}.html`);E.writeFileSync(I,b),g.push(I),a[o]=I}let s={build:{rollupOptions:{input:a,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},emptyOutDir:!1},define:{}},c=s;return r&&(c=(0,Z.mergeConfig)(s,r)),Object.keys(f).length>0&&(c.define={...c.define,...f}),c.build||(c.build={}),c.build.rollupOptions||(c.build.rollupOptions={}),c.build.rollupOptions.input=a,c.build.emptyOutDir=!1,l(`\u7B56\u7565 "${t}" - ${e.length} \u4E2A\u9875\u9762`),c}function Y(t=[]){let e=t.findIndex(r=>r==="--outDir");if(e!==-1&&e+1<t.length){let r=t[e+1];return P.resolve(process.cwd(),r)}let i=t.find(r=>r.startsWith("--outDir="));if(i){let r=i.split("=")[1];return P.resolve(process.cwd(),r)}return P.resolve(process.cwd(),"dist")}function ee(t=[]){let e=Y(t),i=k(!0);try{E.existsSync(e)&&(E.rmSync(e,{recursive:!0,force:!0}),i(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${P.relative(process.cwd(),e)}`))}catch(r){i(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,r)}}function te(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:i=[],pageConfigs:r={}}=t,n=k(!1),p=new Set,u=W.glob.sync(e,{cwd:process.cwd()}),l=R(u,e,i,n);if(l.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let a of l){let g={pageName:a.name,filePath:a.file,relativePath:P.relative(process.cwd(),a.file)},f=_(r,g,n),s=(f==null?void 0:f.strategy)||"default";p.add(s)}return Array.from(p).sort()}catch(a){return n("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",a),["default"]}}var M=$(require("fs")),j=$(require("path")),ne=require("url"),A=require("module"),re=["multipage.config.js","multipage.config.mjs","multipage.config.ts"];function H(){for(let t of re){let e=j.resolve(process.cwd(),t);if(M.existsSync(e))return!0}return!1}async function z(t){let e=await ve();if(e){let i=e(t);return i||{}}return null}async function Ce(t){if(t.endsWith(".ts"))try{let e=await M.promises.readFile(t,"utf-8"),i;try{i=await import("esbuild")}catch{throw console.error(`
102
- \u274C \u65E0\u6CD5\u52A0\u8F7D TypeScript \u914D\u7F6E\u6587\u4EF6\uFF0C\u56E0\u4E3A\u627E\u4E0D\u5230 esbuild \u4F9D\u8D56\u3002`),console.error(`
103
- \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
104
- `),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${j.basename(t)}`)}let r=await i.transform(e,{loader:"ts",format:"cjs",target:"node16",sourcemap:!1}),n=new A.Module(t);return n.filename=t,n.paths=A.Module._nodeModulePaths(j.dirname(t)),n._compile(r.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 r=(await M.promises.readFile(t,"utf-8")).replace(/export\s+default\s+/,"module.exports = ").replace(/import\s+.*?from\s+['"][^'"]*['"];?\s*/g,"").replace(/:\s*[^=,})\]]+/g,""),n=new A.Module(t);return n.filename=t,n.paths=A.Module._nodeModulePaths(j.dirname(t)),n._compile(r,t),n.exports}if(t.endsWith(".js")||t.endsWith(".mjs"))return import(`${(0,ne.pathToFileURL)(t).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${t}`)}async function ve(){let t=process.cwd();for(let e of re){let i=j.resolve(t,e);if(M.existsSync(i))try{let r=await Ce(i),n=r.default||r;if(typeof n=="function")return n;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${e} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(r){e.endsWith(".ts")?(console.error(`\u52A0\u8F7DTypeScript\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,r),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:`,r)}}return null}var F={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,merge:"all",strategies:{default:{}},pageConfigs:{},pageEnvs:()=>null};function D(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,merge:t.merge??F.merge,strategies:e,pageConfigs:t.pageConfigs??F.pageConfigs,pageEnvs:t.pageEnvs??F.pageEnvs,__forceBuildStrategy:t.__forceBuildStrategy}}var oe=$(require("glob"));function se(t){return typeof t=="function"?t:()=>t}function ie(t){return t}function ae(t,e,i,r){let n=h.resolve(t,"assets");if(!d.existsSync(n)){r("assets\u76EE\u5F55\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u91CD\u7EC4");return}let p=d.readdirSync(t).filter(s=>s.endsWith(".html")).map(s=>h.resolve(t,s));if(p.length===0){if(r("\u672A\u627E\u5230HTML\u6587\u4EF6\uFF0C\u4F46\u4ECD\u9700\u6E05\u7406assets\u76EE\u5F55"),(e==="strategy"||e==="page")&&d.existsSync(n))try{d.rmSync(n,{recursive:!0,force:!0}),r("\u5F3A\u5236\u6E05\u7406\u6574\u4E2A\u6839\u76EE\u5F55assets\u76EE\u5F55 (strategy/page\u6A21\u5F0F)")}catch(s){r("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",s)}return}let u=new Map,l=new Map;p.forEach(s=>{var S;let c=h.basename(s,".html");c.startsWith(".temp.mp.")&&(c=c.replace(".temp.mp.",""));let o=d.readFileSync(s,"utf-8"),m=[],C=/(?:src|href)="\/assets\/([^"]+)"/g,x;for(;(x=C.exec(o))!==null;){let b=x[1];m.push(b),l.has(b)||l.set(b,[]),(S=l.get(b))==null||S.push(c)}let y="";e==="page"&&(y=c);let v=h.resolve(t,y);u.set(c,{assets:m,targetDir:v}),r(`\u9875\u9762 ${c} \u4F9D\u8D56\u8D44\u6E90:`,m)}),r("\u7B2C\u4E00\u9636\u6BB5\u8865\u5145\uFF1A\u5206\u6790public\u76EE\u5F55\u8D44\u6E90");let a=new Set,g=h.resolve(process.cwd(),"public");if(d.existsSync(g)){let s=oe.sync("**/*",{cwd:g,nodir:!0});for(let c of s)a.add(c),r(`\u53D1\u73B0public\u8D44\u6E90: ${c}`)}l.forEach((s,c)=>{s.length>1?r(`\u5171\u4EAB\u8D44\u6E90 ${c} \u88AB\u9875\u9762\u4F7F\u7528:`,s):r(`\u72EC\u5360\u8D44\u6E90 ${c} \u4EC5\u88AB\u9875\u9762 ${s[0]} \u4F7F\u7528`)}),u.forEach(({assets:s,targetDir:c},o)=>{let m=h.resolve(c,"assets");d.existsSync(m)||d.mkdirSync(m,{recursive:!0}),s.forEach(C=>{let x=h.resolve(n,C),y=h.resolve(m,C);if(d.existsSync(x)){d.copyFileSync(x,y);let S=(l.get(C)||[]).length>1?"\u5171\u4EAB\u8D44\u6E90":"\u72EC\u5360\u8D44\u6E90";r(`\u590D\u5236${S}\u5230 ${o}: assets/${C} -> ${h.relative(t,y)}`)}else r(`\u8B66\u544A: \u8D44\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728: ${x}`)}),d.existsSync(n)&&d.readdirSync(n).forEach(x=>{if(!s.includes(x)){let y=h.resolve(n,x),v=h.resolve(m,x);d.existsSync(y)&&(d.copyFileSync(y,v),r(`\u590D\u5236\u5176\u4ED6\u8D44\u6E90\u6587\u4EF6\u5230 ${o}: assets/${x} -> ${h.relative(t,v)}`))}})}),r("\u7B2C\u4E09\u9636\u6BB5\u8865\u5145\uFF1A\u5904\u7406public\u76EE\u5F55\u8D44\u6E90");let f=new Set;u.forEach(({targetDir:s})=>{f.add(s)});for(let s of f)for(let c of a){let o=h.resolve(t,c),m=h.resolve(s,c);if(d.existsSync(o)){let C=h.dirname(m);d.existsSync(C)||d.mkdirSync(C,{recursive:!0}),d.copyFileSync(o,m),r(`\u590D\u5236public\u8D44\u6E90: ${c} -> ${h.relative(t,m)}`)}}if(u.forEach(({targetDir:s},c)=>{let o=h.resolve(t,`${c}.html`),m=c;if(d.existsSync(o)||(o=h.resolve(t,`.temp.mp.${c}.html`),d.existsSync(o)&&(m=c)),d.existsSync(o)){let C=d.readFileSync(o,"utf-8");C=C.replace(/(?:src|href)="\/assets\//g,v=>v.replace("/assets/","./assets/"));let x;e==="strategy"?x=h.resolve(s,`${m}.html`):e==="page"?x=h.resolve(s,"index.html"):x=o,d.writeFileSync(x,C),x!==o&&d.unlinkSync(o);let y=h.relative(t,x);r(`\u6309${e}\u5206\u7EC4\u79FB\u52A8HTML\u6587\u4EF6: ${m}.html -> ${y}`)}else r(`\u8B66\u544A: \u672A\u627E\u5230HTML\u6587\u4EF6: ${c}.html \u6216 .temp.mp.${c}.html`)}),d.existsSync(n))if(e==="strategy"||e==="page")try{d.rmSync(n,{recursive:!0,force:!0}),r("\u5F3A\u5236\u6E05\u7406\u6574\u4E2A\u6839\u76EE\u5F55assets\u76EE\u5F55 (strategy/page\u6A21\u5F0F)")}catch(s){r("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",s)}else{l.forEach((c,o)=>{let m=h.resolve(n,o);d.existsSync(m)&&(d.unlinkSync(m),r(`\u6E05\u7406\u539F\u59CB\u8D44\u6E90\u6587\u4EF6: assets/${o}`))});let s=d.readdirSync(n);s.length===0?(d.rmdirSync(n),r("\u6E05\u7406\u7A7A\u7684assets\u76EE\u5F55")):r("assets\u76EE\u5F55\u4E2D\u8FD8\u6709\u672A\u5904\u7406\u7684\u6587\u4EF6:",s)}(e==="strategy"||e==="page")&&a.size>0&&(r("\u7B2C\u4E94\u9636\u6BB5\u8865\u5145\uFF1A\u6E05\u7406\u6839\u76EE\u5F55\u7684public\u8D44\u6E90"),a.forEach(s=>{let c=h.resolve(t,s);if(d.existsSync(c))try{d.unlinkSync(c),r(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90: ${s}`)}catch(o){r(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90\u5931\u8D25: ${s}`,o)}}),a.forEach(s=>{let c=h.resolve(t,s),o=h.dirname(c);for(;o!==t&&o!==h.dirname(o);)try{if(d.existsSync(o)&&d.readdirSync(o).length===0)d.rmdirSync(o),r(`\u5220\u9664\u7A7A\u76EE\u5F55: ${h.relative(t,o)}`),o=h.dirname(o);else break}catch{break}}))}function ce(t){let e,i=[],r=()=>{};return{name:"vite-multi-page",async configResolved(n){let p=null;H()&&(p=await z({mode:n.command==="serve"?"development":"production",command:n.command,isCLI:!1}));let u=D(p);e=t?t(u,{mode:n.command==="serve"?"development":"production",command:n.command,isCLI:!1}):u,r=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{},r("Vite\u914D\u7F6E\u5DF2\u89E3\u6790, \u4F7F\u7528\u914D\u7F6E:",{strategies:Object.keys(e.strategies||{}),entry:e.entry})},async config(n,{command:p}){var u;if(p==="serve"){let l=process.argv,a=l.find(g=>g.startsWith("--strategy="));if(a){let g=a.split("=")[1];g&&(process.env.VITE_MULTI_PAGE_STRATEGY=g)}else{let g=l.findIndex(f=>f==="--strategy");if(g!==-1&&g+1<l.length){let f=l[g+1];process.env.VITE_MULTI_PAGE_STRATEGY=f}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(p==="build"){if(!e){let s=null;H()&&(s=await z({mode:"production",command:"build",isCLI:!1}));let c=D(s);e=t?t(c,{mode:"production",command:"build",isCLI:!1}):c,r=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{}}r("\u914D\u7F6E\u6784\u5EFA\u6A21\u5F0F");let l=process.env.VITE_MULTI_PAGE_BUILD_SINGLE_PAGE;if(l){r(`\u5355\u9875\u9762\u6784\u5EFA\u6A21\u5F0F: ${l}`);let s=N({entry:e.entry||"src/pages/**/*.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",merge:e.merge||"all",strategies:e.strategies||{},pageConfigs:e.pageConfigs||{},forceBuildStrategy:void 0,forceBuildPage:l}),c=Object.values(s);if(c.length>0){let o=c[0],m=(0,q.mergeConfig)(n,o);Object.assign(n,m),r(`\u5DF2\u5E94\u7528\u5355\u9875\u9762\u6784\u5EFA\u914D\u7F6E: ${l}`);return}else throw new Error(`\u672A\u627E\u5230\u9875\u9762: ${l}`)}let a=process.env.VITE_MULTI_PAGE_STRATEGY,g=N({entry:e.entry||"src/pages/**/*.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",merge:e.merge||"all",strategies:e.strategies||{},pageConfigs:e.pageConfigs||{},forceBuildStrategy:a}),f=Object.keys(g)[0];if(f&&g[f]){r(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${f}`);let s=g[f],c=(0,q.mergeConfig)(n,s);Object.assign(n,c),r(`\u5DF2\u5E94\u7528\u7B56\u7565 "${f}" \u7684\u914D\u7F6E:`,{build:!!s.build,define:!!s.define,plugins:((u=s.plugins)==null?void 0:u.length)||0})}else throw r("\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
101
+ `}}var K=require("vite"),A=require("glob"),h=S(require("path")),P=S(require("fs"));function D(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:r=[],template:o="index.html",placeholder:i="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:l={},pageConfigs:g={},forceBuildStrategy:s}=t,n=j(!0),a={};try{let c=A.glob.sync(e,{cwd:process.cwd()}),d=F(c,e,r,n);if(d.length===0)return n("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let u=new Map,p=new Map;for(let f of d){let y={pageName:f.name,filePath:f.file,relativePath:h.relative(process.cwd(),f.file)},C=O(g,y,n)?.strategy||"default";u.set(f.name,C),p.has(C)||p.set(C,[]),p.get(C)?.push(f.name)}if(n(`\u{1F4C4} \u53D1\u73B0 ${d.length} \u4E2A\u9875\u9762: ${d.map(f=>f.name).join(", ")}`),s){let f=p.get(s)||[];if(f.length===0)return n(`\u8B66\u544A: \u7B56\u7565 "${s}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};n(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${s}, \u9875\u9762: ${f.join(", ")}`);let y=L(s,f,d,l[s],g,o,i,n);return a[s]=y,a}for(let[f,y]of p){if(y.length===0)continue;let v=l[f]||{},C=L(f,y,d,v,g,o,i,n);a[f]=C}if(Object.keys(a).length===0){n("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let f=d.map(v=>v.name),y=L("default",f,d,{},g,o,i,n);a.default=y}let m=Object.keys(a);return n(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${m.join(", ")}`),a}catch(c){throw n("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",c),c}}function L(t,e,r,o,i,l,g,s){let n={},a=[],c={};for(let m of e){let f=r.find(U=>U.name===m);if(!f)continue;let y={pageName:m,filePath:f.file,relativePath:h.relative(process.cwd(),f.file),strategy:t},v=O(i,y,s);v?.define&&Object.assign(c,v.define);let C=l,Y=`${m}.html`;P.existsSync(h.resolve(process.cwd(),Y))?C=Y:v?.template&&(C=v.template);let H=h.resolve(process.cwd(),C);if(!P.existsSync(H)){s(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${C}`);continue}let _=P.readFileSync(H,"utf-8");if(_.includes(g)){let U=`./${f.file}`;_=_.replace(new RegExp(g.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),U)}let N=h.resolve(process.cwd(),`.temp.mp.${m}.html`);P.writeFileSync(N,_),a.push(N),n[m]=N}let d={input:n,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},u={base:"./",build:{outDir:`dist/${t}`,rollupOptions:d,rolldownOptions:d,emptyOutDir:!1},define:{}},p=u;return o&&(p=(0,K.mergeConfig)(u,o)),Object.keys(c).length>0&&(p.define={...p.define,...c}),p.build||(p.build={}),p.build.rollupOptions||(p.build.rollupOptions={}),p.build.rolldownOptions||(p.build.rolldownOptions={}),p.build.rollupOptions.input=n,p.build.rolldownOptions.input=n,p.build.emptyOutDir=!1,s(`\u7B56\u7565 "${t}" - ${e.length} \u4E2A\u9875\u9762`),p}function k(t=[]){let e=t.findIndex(o=>o==="--outDir");if(e!==-1&&e+1<t.length){let o=t[e+1];return h.resolve(process.cwd(),o)}let r=t.find(o=>o.startsWith("--outDir="));if(r){let o=r.split("=")[1];return h.resolve(process.cwd(),o)}return h.resolve(process.cwd(),"dist")}function X(t=[]){let e=k(t),r=j(!0);try{P.existsSync(e)&&(P.rmSync(e,{recursive:!0,force:!0}),r(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${h.relative(process.cwd(),e)}`))}catch(o){r(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,o)}}function Z(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:r=[],pageConfigs:o={}}=t,i=j(!1),l=new Set,g=A.glob.sync(e,{cwd:process.cwd()}),s=F(g,e,r,i);if(s.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let n of s){let a={pageName:n.name,filePath:n.file,relativePath:h.relative(process.cwd(),n.file)},d=O(o,a,i)?.strategy||"default";l.add(d)}return Array.from(l).sort()}catch(n){return i("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",n),["default"]}}var B=S(require("fs")),V=S(require("path")),ee=require("url"),te=require("jiti"),ne=["multipage.config.ts","multipage.config.js","multipage.config.mjs"];function G(){for(let t of ne){let e=V.resolve(process.cwd(),t);if(B.existsSync(e))return!0}return!1}async function W(t){let e=await xe();if(e){let r=e(t);return r||{}}return null}async function Ce(t){if(t.endsWith(".ts"))return(0,te.createJiti)(x,{interopDefault:!0}).import(t);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 xe(){let t=process.cwd();for(let e of ne){let r=V.resolve(t,e);if(B.existsSync(r))try{let o=await Ce(r),i=o.default||o;if(typeof i=="function")return i;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${e} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(o){console.error(`\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,o)}}return null}var $={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,strategies:{default:{}},pageConfigs:{}};function T(t){if(!t)return{...$};let e=t.strategies??t.buildStrategies??$.strategies;return{entry:t.entry??$.entry,exclude:t.exclude??$.exclude,template:t.template??$.template,placeholder:t.placeholder??$.placeholder,debug:t.debug??$.debug,strategies:e,pageConfigs:t.pageConfigs??$.pageConfigs,__forceBuildStrategy:t.__forceBuildStrategy}}var M=S(require("fs"));function ie(t){return typeof t=="function"?t:()=>t}function re(t){return t}function se(t){let e,r=[],o=()=>{};return{name:"vite-multi-page",async configResolved(i){let l=null;G()&&(l=await W({mode:i.command==="serve"?"development":"production",command:i.command,isCLI:!1}));let g=T(l);e=t?t(g,{mode:i.command==="serve"?"development":"production",command:i.command,isCLI:!1}):g,o=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{},o("Vite\u914D\u7F6E\u5DF2\u89E3\u6790, \u4F7F\u7528\u914D\u7F6E:",{strategies:Object.keys(e.strategies||{}),entry:e.entry})},async config(i,{command:l}){if(l==="serve"){let g=process.argv,s=g.find(n=>n.startsWith("--strategy="));if(s){let n=s.split("=")[1];n&&(process.env.VITE_MULTI_PAGE_STRATEGY=n)}else{let n=g.findIndex(a=>a==="--strategy");if(n!==-1&&n+1<g.length){let a=g[n+1];process.env.VITE_MULTI_PAGE_STRATEGY=a}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(l==="build"){if(!e){let a=null;G()&&(a=await W({mode:"production",command:"build",isCLI:!1}));let c=T(a);e=t?t(c,{mode:"production",command:"build",isCLI:!1}):c,o=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{}}o("\u914D\u7F6E\u6784\u5EFA\u6A21\u5F0F");let g=process.env.VITE_MULTI_PAGE_STRATEGY,s=D({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:g}),n=Object.keys(s)[0];if(n&&s[n]){o(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${n}`);let a=s[n],c=(0,oe.mergeConfig)(i,a);Object.assign(i,c),o(`\u5DF2\u5E94\u7528\u7B56\u7565 "${n}" \u7684\u914D\u7F6E:`,{build:!!a.build,define:!!a.define,plugins:a.plugins?.length||0})}else throw o("\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
105
102
 
106
103
  \u53EF\u80FD\u7684\u539F\u56E0\uFF1A
107
104
  1. \u914D\u7F6E\u6587\u4EF6\u8FD4\u56DE\u7A7A\u5BF9\u8C61 {}
@@ -116,5 +113,5 @@ export default () => ({
116
113
  strategies: {
117
114
  default: {}
118
115
  }
119
- });`)}},configureServer(n){if(n.config.command==="serve"){r("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let p=process.env.VITE_MULTI_PAGE_STRATEGY||"default";r(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${p}`),X(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:p},r)}},writeBundle(n){if(!(e!=null&&e.merge)||e.merge==="all")return;let p=n.dir||"dist",u=e.merge;r(`\u5E94\u7528\u6784\u5EFA\u4EA7\u7269\u5408\u5E76\u6A21\u5F0F: ${u}`);try{ae(p,u,e,r)}catch(l){throw r("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",l),l}},buildEnd(){i.length>0&&(r(`\u6E05\u7406 ${i.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),i.forEach(n=>{try{d.existsSync(n)&&(d.unlinkSync(n),r(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${n}`))}catch(p){r(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${n}`,p)}}),i.length=0)}}}function be(t,e,i,r){return ae(t,e,i,r)}var Se=ce;0&&(module.exports={cleanViteOutputDirectory,defineConfig,defineConfigTransform,generateBuildConfig,getAvailableStrategies,getViteOutputDirectory,mergeWithDefaults,reorganizeAssetsInCLI,viteMultiPage});
116
+ });`)}},configureServer(i){if(i.config.command==="serve"){o("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let l=process.env.VITE_MULTI_PAGE_STRATEGY||"default";o(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${l}`),Q(i,{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:l},o)}},writeBundle(){},buildEnd(){r.length>0&&(o(`\u6E05\u7406 ${r.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),r.forEach(i=>{try{M.existsSync(i)&&(M.unlinkSync(i),o(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${i}`))}catch(l){o(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${i}`,l)}}),r.length=0)}}}var be=se;0&&(module.exports={cleanViteOutputDirectory,defineConfig,defineConfigTransform,generateBuildConfig,getAvailableStrategies,getViteOutputDirectory,mergeWithDefaults,viteMultiPage});
120
117
  //# sourceMappingURL=index.js.map