@fchc8/vite-plugin-multi-page 1.9.4 → 1.9.6

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/index.mjs CHANGED
@@ -1,13 +1,13 @@
1
- import*as m from"fs";import*as x from"path";import{mergeConfig as fe}from"vite";import*as P from"path";import*as I from"fs";import{glob as X}from"glob";import*as F from"path";function R(t,e,l,s){let n=[],g=new Map,u=e.replace(/\/\*.*$/,"");(!u||u===e)&&(u=F.dirname(e.split("*")[0]));let p=[];for(let i of t){if(l.includes(i))continue;let d=i.replace(/\\/g,"/"),y=u.replace(/\\/g,"/"),o=F.posix.relative(y,d).split("/");if(o.length===1){let r=o[0],f=F.posix.basename(r,F.posix.extname(r));p.push({name:f,file:i,priority:1})}else if(o.length>=2){let r=F.posix.basename(d,F.posix.extname(d)),f=o[0];r==="main"&&p.push({name:f,file:i,priority:2})}}for(let i of p){let d=g.get(i.name);d?i.priority>d.priority&&g.set(i.name,{file:i.file,priority:i.priority}):g.set(i.name,{file:i.file,priority:i.priority})}for(let[i,{file:d}]of g.entries())n.push({name:i,file:d});return n}function H(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function N(t){return(...e)=>{t&&console.log("[vite-plugin-multi-page]",...e)}}function _(t,e,l){if(!t)return null;if(typeof t=="function"){let s=t(e);return s}for(let[s,n]of Object.entries(t)){if(s===e.pageName)return l(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${e.pageName}:`,n),n;if(n.match&&(Array.isArray(n.match)?n.match:[n.match]).some(p=>D(p,e.pageName)||D(p,e.relativePath)||D(p,e.filePath)))return l(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${n.match}):`,n),{...n,match:void 0};if(D(s,e.pageName))return l(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${s}):`,n),n}return null}function D(t,e){let l=t.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${l}$`).test(e)}function Z(t,e,l){try{let s=X.sync(e.entry,{cwd:process.cwd()}),n=R(s,e.entry,e.exclude,l);if(n.length===0){l("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6");return}let g=e.devStrategy||t.config.__cliStrategy||t.config.strategy;g&&(l(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${g}`),n=n.filter(u=>{let p={pageName:u.name,filePath:u.file,relativePath:P.relative(process.cwd(),u.file),strategy:void 0,isMatched:!1},i=_(e.pageConfigs,p,l),d=(i==null?void 0:i.strategy)||"default";return g==="default"?d==="default":d===g}),l(`\u7B56\u7565 "${g}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${n.map(u=>u.name).join(", ")||"\u65E0"}`)),l("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",n),t.middlewares.use(async(u,p,i)=>{try{let y=(u.url||"").split("?")[0];if(y==="/"){let r=te(n,e,l);p.statusCode=200,p.setHeader("Content-Type","text/html"),p.end(r);return}if(y.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!y.endsWith(".html")||y.startsWith("/@")||y.includes("__vite")||y.startsWith("/node_modules"))return i();let a="";if(y.endsWith(".html"))a=P.basename(y,".html");else if(y.startsWith("/")){let r=y.substring(1);if(n.find(f=>f.name===r))a=r;else{let f=r.split("/");if(f.length>1){let C=f[0];n.find(c=>c.name===C)&&(a=C,l(`History \u8DEF\u7531\u5339\u914D: ${y} -> ${C}`))}}}if(!a)return i();let o=n.find(r=>r.name===a);return o?ee(p,o,e,l):i()}catch(d){l(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${d}`),i(d)}}),l("\u5F00\u53D1\u670D\u52A1\u5668\u914D\u7F6E\u5B8C\u6210")}catch(s){throw l(`\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668\u5931\u8D25: ${s}`),s}}function ee(t,e,l,s){var y;let n={pageName:e.name,filePath:e.file,relativePath:P.relative(process.cwd(),e.file),strategy:void 0,isMatched:!1},g=_(l.pageConfigs,n,s);if(g!=null&&g.strategy)n.strategy=g.strategy;else if((y=l.appliedStrategies)!=null&&y.has(e.name)){let a=l.appliedStrategies.get(e.name);a&&(n.strategy=a)}let u="",p=P.resolve(process.cwd(),`${e.name}.html`);if(I.existsSync(p)?u=p:g!=null&&g.template?u=P.resolve(process.cwd(),g.template):u=P.resolve(process.cwd(),l.template),!I.existsSync(u)){t.statusCode=404,t.end("Template not found");return}let i=I.readFileSync(u,"utf-8");if(i.includes(l.placeholder)){let a=i;if(i=i.split(l.placeholder).join(`/${e.file}`),i===a){let o=H(l.placeholder),r=new RegExp(o,"g");i=a.replace(r,`/${e.file}`),i===a&&(i=a.replace(/\{\{ENTRY_FILE\}\}/g,`/${e.file}`))}}if(g!=null&&g.define){let a=Object.entries(g.define).map(([o,r])=>{let f=typeof r=="string"?`"${r}"`:JSON.stringify(r);return`window.${o} = ${f};`}).join(`
1
+ import*as u from"fs";import*as C from"path";import{mergeConfig as fe}from"vite";import*as P from"path";import*as R from"fs";import{glob as X}from"glob";import*as E from"path";function N(t,e,c,n){let r=[],g=new Map,d=e.replace(/\/\*.*$/,"");(!d||d===e)&&(d=E.dirname(e.split("*")[0]));let p=[];for(let i of t){if(c.includes(i))continue;let m=i.replace(/\\/g,"/"),h=d.replace(/\\/g,"/"),l=E.posix.relative(h,m).split("/");if(l.length===1){let s=l[0],o=E.posix.basename(s,E.posix.extname(s));p.push({name:o,file:i,priority:1})}else if(l.length>=2){let s=E.posix.basename(m,E.posix.extname(m)),o=l[0];s==="main"&&p.push({name:o,file:i,priority:2})}}for(let i of p){let m=g.get(i.name);m?i.priority>m.priority&&g.set(i.name,{file:i.file,priority:i.priority}):g.set(i.name,{file:i.file,priority:i.priority})}for(let[i,{file:m}]of g.entries())r.push({name:i,file:m});return r}function H(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function D(t){return(...e)=>{t&&console.log("[vite-plugin-multi-page]",...e)}}function _(t,e,c){if(!t)return null;if(typeof t=="function"){let n=t(e);return n}for(let[n,r]of Object.entries(t)){if(n===e.pageName)return c(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${e.pageName}:`,r),r;if(r.match&&(Array.isArray(r.match)?r.match:[r.match]).some(p=>L(p,e.pageName)||L(p,e.relativePath)||L(p,e.filePath)))return c(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${r.match}):`,r),{...r,match:void 0};if(L(n,e.pageName))return c(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${n}):`,r),r}return null}function L(t,e){let c=t.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${c}$`).test(e)}function Z(t,e,c){try{let n=X.sync(e.entry,{cwd:process.cwd()}),r=N(n,e.entry,e.exclude,c);if(r.length===0){c("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6");return}let g=e.devStrategy||t.config.__cliStrategy||t.config.strategy;g&&(c(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${g}`),r=r.filter(d=>{let p={pageName:d.name,filePath:d.file,relativePath:P.relative(process.cwd(),d.file),strategy:void 0,isMatched:!1},i=_(e.pageConfigs,p,c),m=(i==null?void 0:i.strategy)||"default";return g==="default"?m==="default":m===g}),c(`\u7B56\u7565 "${g}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${r.map(d=>d.name).join(", ")||"\u65E0"}`)),c("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",r),t.middlewares.use(async(d,p,i)=>{try{let h=(d.url||"").split("?")[0];if(h==="/"){let s=te(r,e,c);p.statusCode=200,p.setHeader("Content-Type","text/html"),p.end(s);return}if(h.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!h.endsWith(".html")||h.startsWith("/@")||h.includes("__vite")||h.startsWith("/node_modules"))return i();let a="";if(h.endsWith(".html"))a=P.basename(h,".html");else if(h.startsWith("/")){let s=h.substring(1);if(r.find(o=>o.name===s))a=s;else{let o=s.split("/");if(o.length>1){let x=o[0];r.find(f=>f.name===x)&&(a=x,c(`History \u8DEF\u7531\u5339\u914D: ${h} -> ${x}`))}}}if(!a)return i();let l=r.find(s=>s.name===a);return l?ee(p,l,e,c):i()}catch(m){c(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${m}`),i(m)}}),c("\u5F00\u53D1\u670D\u52A1\u5668\u914D\u7F6E\u5B8C\u6210")}catch(n){throw c(`\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668\u5931\u8D25: ${n}`),n}}function ee(t,e,c,n){var h;let r={pageName:e.name,filePath:e.file,relativePath:P.relative(process.cwd(),e.file),strategy:void 0,isMatched:!1},g=_(c.pageConfigs,r,n);if(g!=null&&g.strategy)r.strategy=g.strategy;else if((h=c.appliedStrategies)!=null&&h.has(e.name)){let a=c.appliedStrategies.get(e.name);a&&(r.strategy=a)}let d="",p=P.resolve(process.cwd(),`${e.name}.html`);if(R.existsSync(p)?d=p:g!=null&&g.template?d=P.resolve(process.cwd(),g.template):d=P.resolve(process.cwd(),c.template),!R.existsSync(d)){t.statusCode=404,t.end("Template not found");return}let i=R.readFileSync(d,"utf-8");if(i.includes(c.placeholder)){let a=i;if(i=i.split(c.placeholder).join(`/${e.file}`),i===a){let l=H(c.placeholder),s=new RegExp(l,"g");i=a.replace(s,`/${e.file}`),i===a&&(i=a.replace(/\{\{ENTRY_FILE\}\}/g,`/${e.file}`))}}if(g!=null&&g.define){let a=Object.entries(g.define).map(([l,s])=>{let o=typeof s=="string"?`"${s}"`:JSON.stringify(s);return`window.${l} = ${o};`}).join(`
2
2
  `);a&&(i=i.replace(/<\/head>/i,`<script type="text/javascript">
3
3
  ${a}
4
4
  </script>
5
- </head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(i)}var Y=Z;function te(t,e,l){try{let s=t.map(n=>{var d;let g={pageName:n.name,filePath:n.file,relativePath:P.relative(process.cwd(),n.file),strategy:void 0,isMatched:!1},u=_(e.pageConfigs,g,l),p="default";if(u!=null&&u.strategy)p=u.strategy;else if((d=e.appliedStrategies)!=null&&d.has(n.name)){let y=e.appliedStrategies.get(n.name);y&&(p=y)}let i=p!=="default"?`<span class="badge">${p}</span>`:"";return`
5
+ </head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(i)}var Y=Z;function te(t,e,c){try{let n=t.map(r=>{var m;let g={pageName:r.name,filePath:r.file,relativePath:P.relative(process.cwd(),r.file),strategy:void 0,isMatched:!1},d=_(e.pageConfigs,g,c),p="default";if(d!=null&&d.strategy)p=d.strategy;else if((m=e.appliedStrategies)!=null&&m.has(r.name)){let h=e.appliedStrategies.get(r.name);h&&(p=h)}let i=p!=="default"?`<span class="badge">${p}</span>`:"";return`
6
6
  <div class="page-item">
7
- <a href="${n.name}.html" class="page-link">
8
- ${n.name}${i}
7
+ <a href="${r.name}.html" class="page-link">
8
+ ${r.name}${i}
9
9
  </a>
10
- <div class="page-path">${n.file}</div>
10
+ <div class="page-path">${r.file}</div>
11
11
  </div>`}).join("");return`
12
12
  <!DOCTYPE html>
13
13
  <html lang="en">
@@ -83,11 +83,11 @@ ${a}
83
83
  \u627E\u5230 ${t.length} \u4E2A\u9875\u9762
84
84
  </div>
85
85
  <div class="page-list">
86
- ${s}
86
+ ${n}
87
87
  </div>
88
88
  </body>
89
89
  </html>
90
- `}catch(s){return l(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${s}`),`
90
+ `}catch(n){return c(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${n}`),`
91
91
  <!DOCTYPE html>
92
92
  <html>
93
93
  <head>
@@ -95,13 +95,13 @@ ${a}
95
95
  </head>
96
96
  <body>
97
97
  <h1>\u751F\u6210\u7D22\u5F15\u9875\u65F6\u53D1\u751F\u9519\u8BEF</h1>
98
- <p>${s}</p>
98
+ <p>${n}</p>
99
99
  </body>
100
100
  </html>
101
- `}}import{mergeConfig as se}from"vite";import{glob as z}from"glob";import*as $ from"path";import*as w from"fs";function W(t){var y;let{entry:e="src/pages/*/main.{ts,js}",exclude:l=[],template:s="index.html",placeholder:n="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:g={},pageConfigs:u={},forceBuildStrategy:p}=t,i=N(!0),d={};try{let a=z.sync(e,{cwd:process.cwd()}),o=R(a,e,l,i);if(o.length===0)return i("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let r=new Map,f=new Map;for(let c of o){let h={pageName:c.name,filePath:c.file,relativePath:$.relative(process.cwd(),c.file)},v=_(u,h,i),b=(v==null?void 0:v.strategy)||"default";r.set(c.name,b),f.has(b)||f.set(b,[]),(y=f.get(b))==null||y.push(c.name)}if(i(`\u{1F4C4} \u53D1\u73B0 ${o.length} \u4E2A\u9875\u9762: ${o.map(c=>c.name).join(", ")}`),p){let c=f.get(p)||[];if(c.length===0)return i(`\u8B66\u544A: \u7B56\u7565 "${p}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};i(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${p}, \u9875\u9762: ${c.join(", ")}`);let h=B(p,c,o,g[p],u,s,n,i);return d[p]=h,d}for(let[c,h]of f){if(h.length===0)continue;let v=g[c]||{},b=B(c,h,o,v,u,s,n,i);d[c]=b}if(Object.keys(d).length===0){i("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let c=o.map(v=>v.name),h=B("default",c,o,{},u,s,n,i);d.default=h}let C=Object.keys(d);return i(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${C.join(", ")}`),d}catch(a){throw i("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",a),a}}function B(t,e,l,s,n,g,u,p){let i={},d=[],y={};for(let r of e){let f=l.find(V=>V.name===r);if(!f)continue;let C={pageName:r,filePath:f.file,relativePath:$.relative(process.cwd(),f.file),strategy:t},c=_(n,C,p);c!=null&&c.define&&Object.assign(y,c.define);let h=g,v=`${r}.html`;w.existsSync($.resolve(process.cwd(),v))?h=v:c!=null&&c.template&&(h=c.template);let b=$.resolve(process.cwd(),h);if(!w.existsSync(b)){p(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${h}`);continue}let S=w.readFileSync(b,"utf-8");if(S.includes(u)){let V=`./${f.file}`;S=S.replace(new RegExp(u.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),V)}let U=$.resolve(process.cwd(),`.temp.mp.${r}.html`);w.writeFileSync(U,S),d.push(U),i[r]=U}let a={build:{rollupOptions:{input:i,output:{entryFileNames:r=>{let f=e.find(C=>r.name===C);return f?`assets/mp${f}-[name]-[hash].js`:"assets/[name]-[hash].js"},chunkFileNames:r=>{var C;if(r.facadeModuleId)for(let c of e){let h=l.find(v=>v.name===c);if(h&&r.facadeModuleId.includes(h.file.replace(/\\/g,"/")))return`assets/mp${c}-[name]-[hash].js`;if(r.facadeModuleId.includes(`/pages/${c}/`)||r.facadeModuleId.includes(`\\pages\\${c}\\`))return`assets/mp${c}-[name]-[hash].js`}if(r.moduleIds){for(let c of r.moduleIds)for(let h of e)if(c.includes(`/pages/${h}/`)||c.includes(`\\pages\\${h}\\`))return`assets/mp${h}-[name]-[hash].js`}let f=r.name||"";if(f.includes("lodash")||f.includes("vendor")||!r.facadeModuleId||r.facadeModuleId.includes("node_modules")){let c=[...r.moduleIds||[]];r.facadeModuleId&&c.push(r.facadeModuleId);for(let h of e)for(let v of c)if(v.includes(`/pages/${h}/`)||v.includes(`\\pages\\${h}\\`))return`assets/mp${h}-[name]-[hash].js`;for(let h of e)if(f.toLowerCase().includes(h.toLowerCase()))return`assets/mp${h}-[name]-[hash].js`;if(e.includes("spa")&&(f.includes("lodash")||f.includes("vendor")||(C=r.facadeModuleId)!=null&&C.includes("node_modules")))return"assets/mpspa-[name]-[hash].js"}return"assets/[name]-[hash].js"},assetFileNames:r=>{if(r.name){for(let f of e)if(r.name.includes(f)||r.source&&typeof r.source=="string"&&r.source.includes(`pages/${f}/`))return`assets/mp${f}-[name]-[hash][extname]`}return"assets/[name]-[hash][extname]"}}},emptyOutDir:!1},define:{}},o=a;return s&&(o=se(a,s)),Object.keys(y).length>0&&(o.define={...o.define,...y}),o.build||(o.build={}),o.build.rollupOptions||(o.build.rollupOptions={}),o.build.rollupOptions.input=i,o.build.emptyOutDir=!1,p(`\u7B56\u7565 "${t}" - ${e.length} \u4E2A\u9875\u9762`),o}function q(t=[]){let e=t.findIndex(s=>s==="--outDir");if(e!==-1&&e+1<t.length){let s=t[e+1];return $.resolve(process.cwd(),s)}let l=t.find(s=>s.startsWith("--outDir="));if(l){let s=l.split("=")[1];return $.resolve(process.cwd(),s)}return $.resolve(process.cwd(),"dist")}function ne(t=[]){let e=q(t),l=N(!0);try{w.existsSync(e)&&(w.rmSync(e,{recursive:!0,force:!0}),l(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${$.relative(process.cwd(),e)}`))}catch(s){l(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,s)}}function re(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:l=[],pageConfigs:s={}}=t,n=N(!1),g=new Set,u=z.sync(e,{cwd:process.cwd()}),p=R(u,e,l,n);if(p.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let i of p){let d={pageName:i.name,filePath:i.file,relativePath:$.relative(process.cwd(),i.file)},y=_(s,d,n),a=(y==null?void 0:y.strategy)||"default";g.add(a)}return Array.from(g).sort()}catch(i){return n("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",i),["default"]}}import*as j from"fs";import*as M from"path";import{pathToFileURL as ie}from"url";import{Module as L}from"module";var J=["multipage.config.js","multipage.config.mjs","multipage.config.ts"];function k(){for(let t of J){let e=M.resolve(process.cwd(),t);if(j.existsSync(e))return!0}return!1}async function G(t){let e=await oe();if(e){let l=e(t);return l||{}}return null}async function ae(t){if(t.endsWith(".ts"))try{let e=await j.promises.readFile(t,"utf-8"),l;try{l=await import("esbuild")}catch{throw console.error(`
101
+ `}}import{mergeConfig as se}from"vite";import{glob as z}from"glob";import*as S from"path";import*as w from"fs";function B(t){var h;let{entry:e="src/pages/*/main.{ts,js}",exclude:c=[],template:n="index.html",placeholder:r="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:g={},pageConfigs:d={},forceBuildStrategy:p}=t,i=D(!0),m={};try{let a=z.sync(e,{cwd:process.cwd()}),l=N(a,e,c,i);if(l.length===0)return i("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let s=new Map,o=new Map;for(let f of l){let y={pageName:f.name,filePath:f.file,relativePath:S.relative(process.cwd(),f.file)},v=_(d,y,i),b=(v==null?void 0:v.strategy)||"default";s.set(f.name,b),o.has(b)||o.set(b,[]),(h=o.get(b))==null||h.push(f.name)}if(i(`\u{1F4C4} \u53D1\u73B0 ${l.length} \u4E2A\u9875\u9762: ${l.map(f=>f.name).join(", ")}`),p){let f=o.get(p)||[];if(f.length===0)return i(`\u8B66\u544A: \u7B56\u7565 "${p}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};i(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${p}, \u9875\u9762: ${f.join(", ")}`);let y=V(p,f,l,g[p],d,n,r,i);return m[p]=y,m}for(let[f,y]of o){if(y.length===0)continue;let v=g[f]||{},b=V(f,y,l,v,d,n,r,i);m[f]=b}if(Object.keys(m).length===0){i("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let f=l.map(v=>v.name),y=V("default",f,l,{},d,n,r,i);m.default=y}let x=Object.keys(m);return i(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${x.join(", ")}`),m}catch(a){throw i("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",a),a}}function V(t,e,c,n,r,g,d,p){let i={},m=[],h={};for(let s of e){let o=c.find(W=>W.name===s);if(!o)continue;let x={pageName:s,filePath:o.file,relativePath:S.relative(process.cwd(),o.file),strategy:t},f=_(r,x,p);f!=null&&f.define&&Object.assign(h,f.define);let y=g,v=`${s}.html`;w.existsSync(S.resolve(process.cwd(),v))?y=v:f!=null&&f.template&&(y=f.template);let b=S.resolve(process.cwd(),y);if(!w.existsSync(b)){p(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${y}`);continue}let $=w.readFileSync(b,"utf-8");if($.includes(d)){let W=`./${o.file}`;$=$.replace(new RegExp(d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),W)}let I=S.resolve(process.cwd(),`.temp.mp.${s}.html`);w.writeFileSync(I,$),m.push(I),i[s]=I}let a={build:{rollupOptions:{input:i,output:{entryFileNames:s=>{let o=e.find(x=>s.name===x);return o?`assets/mp${o}-[name]-[hash].js`:"assets/[name]-[hash].js"},chunkFileNames:s=>{var x;if(s.facadeModuleId)for(let f of e){let y=c.find(v=>v.name===f);if(y&&s.facadeModuleId.includes(y.file.replace(/\\/g,"/")))return`assets/mp${f}-[name]-[hash].js`;if(s.facadeModuleId.includes(`/pages/${f}/`)||s.facadeModuleId.includes(`\\pages\\${f}\\`))return`assets/mp${f}-[name]-[hash].js`}if(s.moduleIds){for(let f of s.moduleIds)for(let y of e)if(f.includes(`/pages/${y}/`)||f.includes(`\\pages\\${y}\\`))return`assets/mp${y}-[name]-[hash].js`}let o=s.name||"";if(o.includes("lodash")||o.includes("vendor")||!s.facadeModuleId||s.facadeModuleId.includes("node_modules")){let f=[...s.moduleIds||[]];s.facadeModuleId&&f.push(s.facadeModuleId);for(let y of e)for(let v of f)if(v.includes(`/pages/${y}/`)||v.includes(`\\pages\\${y}\\`))return`assets/mp${y}-[name]-[hash].js`;for(let y of e)if(o.toLowerCase().includes(y.toLowerCase()))return`assets/mp${y}-[name]-[hash].js`;if(e.includes("spa")&&(o.includes("lodash")||o.includes("vendor")||(x=s.facadeModuleId)!=null&&x.includes("node_modules")))return"assets/mpspa-[name]-[hash].js"}return"assets/[name]-[hash].js"},assetFileNames:s=>{if(s.name){for(let o of e)if(s.name.includes(o))return`assets/mp${o}-[name]-[hash][extname]`;if(s.source&&typeof s.source=="string"){for(let o of e)if(s.source.includes(`pages/${o}/`))return`assets/mp${o}-[name]-[hash][extname]`}if(s.originalFileName){for(let o of e)if(s.originalFileName.includes(`/pages/${o}/`)||s.originalFileName.includes(`\\pages\\${o}\\`))return`assets/mp${o}-[name]-[hash][extname]`}if(s.name==="ttt"||s.name==="test-styles"||s.name.startsWith("test-styles")){let o=Object.keys(i);for(let x of e)if(o.some(f=>f===x)){if(s.name==="ttt"&&x==="mobile")return`assets/mp${x}-[name]-[hash][extname]`;if((s.name==="test-styles"||s.name.startsWith("test-styles"))&&(x==="mobile"||x==="home"))return`assets/mp${x}-[name]-[hash][extname]`}if(s.name==="ttt"||s.name==="test-styles"||s.name.startsWith("test-styles"))return"assets/mpmobile-[name]-[hash][extname]"}if(typeof s.source=="string"&&s.source.length>0){for(let o of e)if(s.source.includes(`${o}-`)||s.source.includes(`.${o}`)||s.source.includes(`/* ${o}`))return`assets/mp${o}-[name]-[hash][extname]`}}return"assets/[name]-[hash][extname]"}}},emptyOutDir:!1},define:{}},l=a;return n&&(l=se(a,n)),Object.keys(h).length>0&&(l.define={...l.define,...h}),l.build||(l.build={}),l.build.rollupOptions||(l.build.rollupOptions={}),l.build.rollupOptions.input=i,l.build.emptyOutDir=!1,p(`\u7B56\u7565 "${t}" - ${e.length} \u4E2A\u9875\u9762`),l}function q(t=[]){let e=t.findIndex(n=>n==="--outDir");if(e!==-1&&e+1<t.length){let n=t[e+1];return S.resolve(process.cwd(),n)}let c=t.find(n=>n.startsWith("--outDir="));if(c){let n=c.split("=")[1];return S.resolve(process.cwd(),n)}return S.resolve(process.cwd(),"dist")}function ne(t=[]){let e=q(t),c=D(!0);try{w.existsSync(e)&&(w.rmSync(e,{recursive:!0,force:!0}),c(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${S.relative(process.cwd(),e)}`))}catch(n){c(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,n)}}function re(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:c=[],pageConfigs:n={}}=t,r=D(!1),g=new Set,d=z.sync(e,{cwd:process.cwd()}),p=N(d,e,c,r);if(p.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let i of p){let m={pageName:i.name,filePath:i.file,relativePath:S.relative(process.cwd(),i.file)},h=_(n,m,r),a=(h==null?void 0:h.strategy)||"default";g.add(a)}return Array.from(g).sort()}catch(i){return r("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",i),["default"]}}import*as j from"fs";import*as M from"path";import{pathToFileURL as ie}from"url";import{Module as A}from"module";var J=["multipage.config.js","multipage.config.mjs","multipage.config.ts"];function k(){for(let t of J){let e=M.resolve(process.cwd(),t);if(j.existsSync(e))return!0}return!1}async function G(t){let e=await oe();if(e){let c=e(t);return c||{}}return null}async function ae(t){if(t.endsWith(".ts"))try{let e=await j.promises.readFile(t,"utf-8"),c;try{c=await import("esbuild")}catch{throw console.error(`
102
102
  \u274C \u65E0\u6CD5\u52A0\u8F7D TypeScript \u914D\u7F6E\u6587\u4EF6\uFF0C\u56E0\u4E3A\u627E\u4E0D\u5230 esbuild \u4F9D\u8D56\u3002`),console.error(`
103
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: ${M.basename(t)}`)}let s=await l.transform(e,{loader:"ts",format:"cjs",target:"node16",sourcemap:!1}),n=new L(t);return n.filename=t,n.paths=L._nodeModulePaths(M.dirname(t)),n._compile(s.code,t),n.exports}catch(e){if(e instanceof Error&&e.message.includes("\u9700\u8981 esbuild \u4F9D\u8D56"))throw e;console.warn("esbuild \u8F6C\u8BD1\u5931\u8D25\uFF0C\u5C1D\u8BD5\u7B80\u5355\u8F6C\u6362:",e);let s=(await j.promises.readFile(t,"utf-8")).replace(/export\s+default\s+/,"module.exports = ").replace(/import\s+.*?from\s+['"][^'"]*['"];?\s*/g,"").replace(/:\s*[^=,})\]]+/g,""),n=new L(t);return n.filename=t,n.paths=L._nodeModulePaths(M.dirname(t)),n._compile(s,t),n.exports}if(t.endsWith(".js")||t.endsWith(".mjs"))return import(`${ie(t).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${t}`)}async function oe(){let t=process.cwd();for(let e of J){let l=M.resolve(t,e);if(j.existsSync(l))try{let s=await ae(l),n=s.default||s;if(typeof n=="function")return n;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${e} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(s){e.endsWith(".ts")?(console.error(`\u52A0\u8F7DTypeScript\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,s),console.log("\u63D0\u793A\uFF1A\u786E\u4FDD\u4F60\u7684\u9879\u76EE\u652F\u6301TypeScript\uFF0C\u6216\u8005\u4F7F\u7528 .js/.mjs \u914D\u7F6E\u6587\u4EF6")):console.error(`\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,s)}}return null}var E={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,merge:"all",strategies:{default:{}},pageConfigs:{}};function A(t){return t?{entry:t.entry??E.entry,exclude:t.exclude??E.exclude,template:t.template??E.template,placeholder:t.placeholder??E.placeholder,debug:t.debug??E.debug,merge:t.merge??E.merge,strategies:t.strategies??E.strategies,pageConfigs:t.pageConfigs??E.pageConfigs,__forceBuildStrategy:t.__forceBuildStrategy}:{...E}}import*as Q from"glob";function le(t){return typeof t=="function"?t:()=>t}function ce(t){return t}function K(t,e,l,s){let n=x.resolve(t,"assets");if(!m.existsSync(n)){s("assets\u76EE\u5F55\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u91CD\u7EC4");return}let g=m.readdirSync(t).filter(a=>a.endsWith(".html")).map(a=>x.resolve(t,a));if(g.length===0){if(s("\u672A\u627E\u5230HTML\u6587\u4EF6\uFF0C\u4F46\u4ECD\u9700\u6E05\u7406assets\u76EE\u5F55"),(e==="strategy"||e==="page")&&m.existsSync(n))try{m.rmSync(n,{recursive:!0,force:!0}),s("\u5F3A\u5236\u6E05\u7406\u6574\u4E2A\u6839\u76EE\u5F55assets\u76EE\u5F55 (strategy/page\u6A21\u5F0F)")}catch(a){s("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",a)}return}let u=new Map,p=new Map;g.forEach(a=>{var b;let o=x.basename(a,".html");o.startsWith(".temp.mp.")&&(o=o.replace(".temp.mp.",""));let r=m.readFileSync(a,"utf-8"),f=[],C=/(?:src|href)="\/assets\/([^"]+)"/g,c;for(;(c=C.exec(r))!==null;){let S=c[1];f.push(S),p.has(S)||p.set(S,[]),(b=p.get(S))==null||b.push(o)}let h="";e==="strategy"?h="default":e==="page"&&(h=o);let v=x.resolve(t,h);u.set(o,{assets:f,targetDir:v}),s(`\u9875\u9762 ${o} \u4F9D\u8D56\u8D44\u6E90:`,f)}),s("\u7B2C\u4E00\u9636\u6BB5\u8865\u5145\uFF1A\u5206\u6790public\u76EE\u5F55\u8D44\u6E90");let i=new Set,d=x.resolve(process.cwd(),"public");if(m.existsSync(d)){let a=Q.sync("**/*",{cwd:d,nodir:!0});for(let o of a)i.add(o),s(`\u53D1\u73B0public\u8D44\u6E90: ${o}`)}p.forEach((a,o)=>{a.length>1?s(`\u5171\u4EAB\u8D44\u6E90 ${o} \u88AB\u9875\u9762\u4F7F\u7528:`,a):s(`\u72EC\u5360\u8D44\u6E90 ${o} \u4EC5\u88AB\u9875\u9762 ${a[0]} \u4F7F\u7528`)}),u.forEach(({assets:a,targetDir:o},r)=>{let f=x.resolve(o,"assets");if(m.existsSync(f)||m.mkdirSync(f,{recursive:!0}),a.forEach(C=>{let c=x.resolve(n,C),h=x.resolve(f,C);m.existsSync(c)?(m.copyFileSync(c,h),s(`\u590D\u5236\u8D44\u6E90\u6587\u4EF6\u5230 ${r}: assets/${C} -> ${x.relative(t,h)}`)):s(`\u8B66\u544A: \u8D44\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728: ${c}`)}),m.existsSync(n)){let C=m.readdirSync(n),c=`mp${r}-`;C.filter(v=>v.startsWith(c)).forEach(v=>{if(!a.includes(v)){let b=x.resolve(n,v),S=x.resolve(f,v);m.existsSync(b)&&(m.copyFileSync(b,S),s(`\u590D\u5236\u524D\u7F00\u5339\u914D\u7684\u8D44\u6E90\u6587\u4EF6\u5230 ${r}: assets/${v} -> ${x.relative(t,S)}`))}})}}),s("\u7B2C\u4E09\u9636\u6BB5\u8865\u5145\uFF1A\u5904\u7406public\u76EE\u5F55\u8D44\u6E90");let y=new Set;u.forEach(({targetDir:a})=>{y.add(a)});for(let a of y)for(let o of i){let r=x.resolve(t,o),f=x.resolve(a,o);if(m.existsSync(r)){let C=x.dirname(f);m.existsSync(C)||m.mkdirSync(C,{recursive:!0}),m.copyFileSync(r,f),s(`\u590D\u5236public\u8D44\u6E90: ${o} -> ${x.relative(t,f)}`)}}if(u.forEach(({targetDir:a},o)=>{let r=x.resolve(t,`${o}.html`),f=o;if(m.existsSync(r)||(r=x.resolve(t,`.temp.mp.${o}.html`),m.existsSync(r)&&(f=o)),m.existsSync(r)){let C=m.readFileSync(r,"utf-8");C=C.replace(/(?:src|href)="\/assets\//g,v=>v.replace("/assets/","./assets/"));let c;e==="strategy"?c=x.resolve(a,`${f}.html`):e==="page"?c=x.resolve(a,"index.html"):c=r,m.writeFileSync(c,C),c!==r&&m.unlinkSync(r);let h=x.relative(t,c);s(`\u6309${e}\u5206\u7EC4\u79FB\u52A8HTML\u6587\u4EF6: ${f}.html -> ${h}`)}else s(`\u8B66\u544A: \u672A\u627E\u5230HTML\u6587\u4EF6: ${o}.html \u6216 .temp.mp.${o}.html`)}),m.existsSync(n))if(e==="strategy"||e==="page")try{m.rmSync(n,{recursive:!0,force:!0}),s("\u5F3A\u5236\u6E05\u7406\u6574\u4E2A\u6839\u76EE\u5F55assets\u76EE\u5F55 (strategy/page\u6A21\u5F0F)")}catch(a){s("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",a)}else{p.forEach((o,r)=>{let f=x.resolve(n,r);m.existsSync(f)&&(m.unlinkSync(f),s(`\u6E05\u7406\u539F\u59CB\u8D44\u6E90\u6587\u4EF6: assets/${r}`))});let a=m.readdirSync(n);a.length===0?(m.rmdirSync(n),s("\u6E05\u7406\u7A7A\u7684assets\u76EE\u5F55")):s("assets\u76EE\u5F55\u4E2D\u8FD8\u6709\u672A\u5904\u7406\u7684\u6587\u4EF6:",a)}(e==="strategy"||e==="page")&&i.size>0&&(s("\u7B2C\u4E94\u9636\u6BB5\u8865\u5145\uFF1A\u6E05\u7406\u6839\u76EE\u5F55\u7684public\u8D44\u6E90"),i.forEach(a=>{let o=x.resolve(t,a);if(m.existsSync(o))try{m.unlinkSync(o),s(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90: ${a}`)}catch(r){s(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90\u5931\u8D25: ${a}`,r)}}),i.forEach(a=>{let o=x.resolve(t,a),r=x.dirname(o);for(;r!==t&&r!==x.dirname(r);)try{if(m.existsSync(r)&&m.readdirSync(r).length===0)m.rmdirSync(r),s(`\u5220\u9664\u7A7A\u76EE\u5F55: ${x.relative(t,r)}`),r=x.dirname(r);else break}catch{break}}))}function pe(t){let e,l=[],s=()=>{};return{name:"vite-multi-page",async configResolved(n){let g=null;k()&&(g=await G({mode:n.command==="serve"?"development":"production",command:n.command,isCLI:!1}));let u=A(g);e=t?t(u,{mode:n.command==="serve"?"development":"production",command:n.command,isCLI:!1}):u,s=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{},s("Vite\u914D\u7F6E\u5DF2\u89E3\u6790, \u4F7F\u7528\u914D\u7F6E:",{strategies:Object.keys(e.strategies||{}),entry:e.entry})},async config(n,{command:g}){var u;if(g==="serve"){let p=process.argv,i=p.find(d=>d.startsWith("--strategy="));if(i){let d=i.split("=")[1];d&&(process.env.VITE_MULTI_PAGE_STRATEGY=d)}else{let d=p.findIndex(y=>y==="--strategy");if(d!==-1&&d+1<p.length){let y=p[d+1];process.env.VITE_MULTI_PAGE_STRATEGY=y}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(g==="build"){if(!e){let y=null;k()&&(y=await G({mode:"production",command:"build",isCLI:!1}));let a=A(y);e=t?t(a,{mode:"production",command:"build",isCLI:!1}):a,s=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{}}s("\u914D\u7F6E\u6784\u5EFA\u6A21\u5F0F");let p=process.env.VITE_MULTI_PAGE_STRATEGY,i=W({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:p}),d=Object.keys(i)[0];if(d&&i[d]){s(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${d}`);let y=i[d],a=fe(n,y);Object.assign(n,a),s(`\u5DF2\u5E94\u7528\u7B56\u7565 "${d}" \u7684\u914D\u7F6E:`,{build:!!y.build,define:!!y.define,plugins:((u=y.plugins)==null?void 0:u.length)||0})}else throw s("\u672A\u627E\u5230\u53EF\u7528\u7684\u6784\u5EFA\u7B56\u7565\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u914D\u7F6E"),new Error(`\u274C \u6784\u5EFA\u5931\u8D25: \u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565
104
+ `),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${M.basename(t)}`)}let n=await c.transform(e,{loader:"ts",format:"cjs",target:"node16",sourcemap:!1}),r=new A(t);return r.filename=t,r.paths=A._nodeModulePaths(M.dirname(t)),r._compile(n.code,t),r.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 n=(await j.promises.readFile(t,"utf-8")).replace(/export\s+default\s+/,"module.exports = ").replace(/import\s+.*?from\s+['"][^'"]*['"];?\s*/g,"").replace(/:\s*[^=,})\]]+/g,""),r=new A(t);return r.filename=t,r.paths=A._nodeModulePaths(M.dirname(t)),r._compile(n,t),r.exports}if(t.endsWith(".js")||t.endsWith(".mjs"))return import(`${ie(t).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${t}`)}async function oe(){let t=process.cwd();for(let e of J){let c=M.resolve(t,e);if(j.existsSync(c))try{let n=await ae(c),r=n.default||n;if(typeof r=="function")return r;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${e} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(n){e.endsWith(".ts")?(console.error(`\u52A0\u8F7DTypeScript\u914D\u7F6E\u6587\u4EF6 ${e} \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 ${e} \u5931\u8D25:`,n)}}return null}var F={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,merge:"all",strategies:{default:{}},pageConfigs:{}};function U(t){return t?{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:t.strategies??F.strategies,pageConfigs:t.pageConfigs??F.pageConfigs,__forceBuildStrategy:t.__forceBuildStrategy}:{...F}}import*as Q from"glob";function le(t){return typeof t=="function"?t:()=>t}function ce(t){return t}function K(t,e,c,n){let r=C.resolve(t,"assets");if(!u.existsSync(r)){n("assets\u76EE\u5F55\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u91CD\u7EC4");return}let g=u.readdirSync(t).filter(a=>a.endsWith(".html")).map(a=>C.resolve(t,a));if(g.length===0){if(n("\u672A\u627E\u5230HTML\u6587\u4EF6\uFF0C\u4F46\u4ECD\u9700\u6E05\u7406assets\u76EE\u5F55"),(e==="strategy"||e==="page")&&u.existsSync(r))try{u.rmSync(r,{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 d=new Map,p=new Map;g.forEach(a=>{var b;let l=C.basename(a,".html");l.startsWith(".temp.mp.")&&(l=l.replace(".temp.mp.",""));let s=u.readFileSync(a,"utf-8"),o=[],x=/(?:src|href)="\/assets\/([^"]+)"/g,f;for(;(f=x.exec(s))!==null;){let $=f[1];o.push($),p.has($)||p.set($,[]),(b=p.get($))==null||b.push(l)}let y="";e==="strategy"?y="default":e==="page"&&(y=l);let v=C.resolve(t,y);d.set(l,{assets:o,targetDir:v}),n(`\u9875\u9762 ${l} \u4F9D\u8D56\u8D44\u6E90:`,o)}),n("\u7B2C\u4E00\u9636\u6BB5\u8865\u5145\uFF1A\u5206\u6790public\u76EE\u5F55\u8D44\u6E90");let i=new Set,m=C.resolve(process.cwd(),"public");if(u.existsSync(m)){let a=Q.sync("**/*",{cwd:m,nodir:!0});for(let l of a)i.add(l),n(`\u53D1\u73B0public\u8D44\u6E90: ${l}`)}p.forEach((a,l)=>{a.length>1?n(`\u5171\u4EAB\u8D44\u6E90 ${l} \u88AB\u9875\u9762\u4F7F\u7528:`,a):n(`\u72EC\u5360\u8D44\u6E90 ${l} \u4EC5\u88AB\u9875\u9762 ${a[0]} \u4F7F\u7528`)}),d.forEach(({assets:a,targetDir:l},s)=>{let o=C.resolve(l,"assets");if(u.existsSync(o)||u.mkdirSync(o,{recursive:!0}),a.forEach(x=>{let f=C.resolve(r,x),y=C.resolve(o,x);u.existsSync(f)?(u.copyFileSync(f,y),n(`\u590D\u5236\u8D44\u6E90\u6587\u4EF6\u5230 ${s}: assets/${x} -> ${C.relative(t,y)}`)):n(`\u8B66\u544A: \u8D44\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728: ${f}`)}),u.existsSync(r)){let x=u.readdirSync(r),f=`mp${s}-`;x.filter(v=>v.startsWith(f)).forEach(v=>{if(!a.includes(v)){let b=C.resolve(r,v),$=C.resolve(o,v);u.existsSync(b)&&(u.copyFileSync(b,$),n(`\u590D\u5236\u524D\u7F00\u5339\u914D\u7684\u8D44\u6E90\u6587\u4EF6\u5230 ${s}: assets/${v} -> ${C.relative(t,$)}`))}})}}),n("\u7B2C\u4E09\u9636\u6BB5\u8865\u5145\uFF1A\u5904\u7406public\u76EE\u5F55\u8D44\u6E90");let h=new Set;d.forEach(({targetDir:a})=>{h.add(a)});for(let a of h)for(let l of i){let s=C.resolve(t,l),o=C.resolve(a,l);if(u.existsSync(s)){let x=C.dirname(o);u.existsSync(x)||u.mkdirSync(x,{recursive:!0}),u.copyFileSync(s,o),n(`\u590D\u5236public\u8D44\u6E90: ${l} -> ${C.relative(t,o)}`)}}if(d.forEach(({targetDir:a},l)=>{let s=C.resolve(t,`${l}.html`),o=l;if(u.existsSync(s)||(s=C.resolve(t,`.temp.mp.${l}.html`),u.existsSync(s)&&(o=l)),u.existsSync(s)){let x=u.readFileSync(s,"utf-8");x=x.replace(/(?:src|href)="\/assets\//g,v=>v.replace("/assets/","./assets/"));let f;e==="strategy"?f=C.resolve(a,`${o}.html`):e==="page"?f=C.resolve(a,"index.html"):f=s,u.writeFileSync(f,x),f!==s&&u.unlinkSync(s);let y=C.relative(t,f);n(`\u6309${e}\u5206\u7EC4\u79FB\u52A8HTML\u6587\u4EF6: ${o}.html -> ${y}`)}else n(`\u8B66\u544A: \u672A\u627E\u5230HTML\u6587\u4EF6: ${l}.html \u6216 .temp.mp.${l}.html`)}),u.existsSync(r))if(e==="strategy"||e==="page")try{u.rmSync(r,{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{p.forEach((l,s)=>{let o=C.resolve(r,s);u.existsSync(o)&&(u.unlinkSync(o),n(`\u6E05\u7406\u539F\u59CB\u8D44\u6E90\u6587\u4EF6: assets/${s}`))});let a=u.readdirSync(r);a.length===0?(u.rmdirSync(r),n("\u6E05\u7406\u7A7A\u7684assets\u76EE\u5F55")):n("assets\u76EE\u5F55\u4E2D\u8FD8\u6709\u672A\u5904\u7406\u7684\u6587\u4EF6:",a)}(e==="strategy"||e==="page")&&i.size>0&&(n("\u7B2C\u4E94\u9636\u6BB5\u8865\u5145\uFF1A\u6E05\u7406\u6839\u76EE\u5F55\u7684public\u8D44\u6E90"),i.forEach(a=>{let l=C.resolve(t,a);if(u.existsSync(l))try{u.unlinkSync(l),n(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90: ${a}`)}catch(s){n(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90\u5931\u8D25: ${a}`,s)}}),i.forEach(a=>{let l=C.resolve(t,a),s=C.dirname(l);for(;s!==t&&s!==C.dirname(s);)try{if(u.existsSync(s)&&u.readdirSync(s).length===0)u.rmdirSync(s),n(`\u5220\u9664\u7A7A\u76EE\u5F55: ${C.relative(t,s)}`),s=C.dirname(s);else break}catch{break}}))}function pe(t){let e,c=[],n=()=>{};return{name:"vite-multi-page",async configResolved(r){let g=null;k()&&(g=await G({mode:r.command==="serve"?"development":"production",command:r.command,isCLI:!1}));let d=U(g);e=t?t(d,{mode:r.command==="serve"?"development":"production",command:r.command,isCLI:!1}):d,n=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{},n("Vite\u914D\u7F6E\u5DF2\u89E3\u6790, \u4F7F\u7528\u914D\u7F6E:",{strategies:Object.keys(e.strategies||{}),entry:e.entry})},async config(r,{command:g}){var d;if(g==="serve"){let p=process.argv,i=p.find(m=>m.startsWith("--strategy="));if(i){let m=i.split("=")[1];m&&(process.env.VITE_MULTI_PAGE_STRATEGY=m)}else{let m=p.findIndex(h=>h==="--strategy");if(m!==-1&&m+1<p.length){let h=p[m+1];process.env.VITE_MULTI_PAGE_STRATEGY=h}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(g==="build"){if(!e){let h=null;k()&&(h=await G({mode:"production",command:"build",isCLI:!1}));let a=U(h);e=t?t(a,{mode:"production",command:"build",isCLI:!1}):a,n=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{}}n("\u914D\u7F6E\u6784\u5EFA\u6A21\u5F0F");let p=process.env.VITE_MULTI_PAGE_STRATEGY,i=B({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:p}),m=Object.keys(i)[0];if(m&&i[m]){n(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${m}`);let h=i[m],a=fe(r,h);Object.assign(r,a),n(`\u5DF2\u5E94\u7528\u7B56\u7565 "${m}" \u7684\u914D\u7F6E:`,{build:!!h.build,define:!!h.define,plugins:((d=h.plugins)==null?void 0:d.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
105
105
 
106
106
  \u53EF\u80FD\u7684\u539F\u56E0\uFF1A
107
107
  1. \u914D\u7F6E\u6587\u4EF6\u8FD4\u56DE\u7A7A\u5BF9\u8C61 {}
@@ -116,5 +116,5 @@ export default () => ({
116
116
  strategies: {
117
117
  default: {}
118
118
  }
119
- });`)}},configureServer(n){if(n.config.command==="serve"){s("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let g=process.env.VITE_MULTI_PAGE_STRATEGY||"default";s(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${g}`),Y(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:g},s)}},writeBundle(n){if(!(e!=null&&e.merge)||e.merge==="all")return;let g=n.dir||"dist",u=e.merge;s(`\u5E94\u7528\u6784\u5EFA\u4EA7\u7269\u5408\u5E76\u6A21\u5F0F: ${u}`);try{K(g,u,e,s)}catch(p){throw s("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",p),p}},buildEnd(){l.length>0&&(s(`\u6E05\u7406 ${l.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),l.forEach(n=>{try{m.existsSync(n)&&(m.unlinkSync(n),s(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${n}`))}catch(g){s(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${n}`,g)}}),l.length=0)}}}function Ge(t,e,l,s){return K(t,e,l,s)}var He=pe;export{ne as cleanViteOutputDirectory,He as default,le as defineConfig,ce as defineConfigTransform,W as generateBuildConfig,re as getAvailableStrategies,q as getViteOutputDirectory,A as mergeWithDefaults,Ge as reorganizeAssetsInCLI,pe as viteMultiPage};
119
+ });`)}},configureServer(r){if(r.config.command==="serve"){n("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let g=process.env.VITE_MULTI_PAGE_STRATEGY||"default";n(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${g}`),Y(r,{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:g},n)}},writeBundle(r){if(!(e!=null&&e.merge)||e.merge==="all")return;let g=r.dir||"dist",d=e.merge;n(`\u5E94\u7528\u6784\u5EFA\u4EA7\u7269\u5408\u5E76\u6A21\u5F0F: ${d}`);try{K(g,d,e,n)}catch(p){throw n("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",p),p}},buildEnd(){c.length>0&&(n(`\u6E05\u7406 ${c.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),c.forEach(r=>{try{u.existsSync(r)&&(u.unlinkSync(r),n(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${r}`))}catch(g){n(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${r}`,g)}}),c.length=0)}}}function Ge(t,e,c,n){return K(t,e,c,n)}var He=pe;export{ne as cleanViteOutputDirectory,He as default,le as defineConfig,ce as defineConfigTransform,B as generateBuildConfig,re as getAvailableStrategies,q as getViteOutputDirectory,U as mergeWithDefaults,Ge as reorganizeAssetsInCLI,pe as viteMultiPage};
120
120
  //# sourceMappingURL=index.mjs.map