@fchc8/vite-plugin-multi-page 1.11.4 → 2.0.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/README-EN.md +192 -217
- package/README.md +190 -215
- package/dist/cli.js +12 -126
- package/dist/index.d.mts +1 -11
- package/dist/index.d.ts +1 -11
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +13 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,145 +1,31 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var
|
|
2
|
+
"use strict";var ae=Object.create;var R=Object.defineProperty;var ce=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var fe=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty;var j=(e,t)=>()=>(e&&(t=e(e=0)),t);var A=(e,t)=>{for(var n in t)R(e,n,{get:t[n],enumerable:!0})},z=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of le(t))!pe.call(e,r)&&r!==n&&R(e,r,{get:()=>t[r],enumerable:!(o=ce(t,r))||o.enumerable});return e};var P=(e,t,n)=>(n=e!=null?ae(fe(e)):{},z(t||!e||!e.__esModule?R(n,"default",{value:e,enumerable:!0}):n,e)),ge=e=>z(R({},"__esModule",{value:!0}),e);var x=j(()=>{"use strict"});function U(e,t,n,o){let r=[],u=new Map,y=t.replace(/\/\*.*$/,"");(!y||y===t)&&(y=O.dirname(t.split("*")[0]));let c=[];for(let s of e){if(n.includes(s))continue;let l=s.replace(/\\/g,"/"),g=y.replace(/\\/g,"/"),f=O.posix.relative(g,l).split("/");if(f.length===1){let h=f[0],i=O.posix.basename(h,O.posix.extname(h));c.push({name:i,file:s,priority:1})}else if(f.length>=2){let h=O.posix.basename(l,O.posix.extname(l)),i=f[0];h==="main"&&c.push({name:i,file:s,priority:2})}}for(let s of c){let l=u.get(s.name);l?s.priority>l.priority&&u.set(s.name,{file:s.file,priority:s.priority}):u.set(s.name,{file:s.file,priority:s.priority})}for(let[s,{file:l}]of u.entries())r.push({name:s,file:l});return r}var O,J=j(()=>{"use strict";x();O=P(require("path"))});function k(e,t,n){if(!e)return null;if(typeof e=="function")return e(t);for(let[o,r]of Object.entries(e)){if(o===t.pageName)return n(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${t.pageName}:`,r),r;if(r.match&&(Array.isArray(r.match)?r.match:[r.match]).some(c=>L(c,t.pageName)||L(c,t.relativePath)||L(c,t.filePath)))return n(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${t.pageName} (\u6A21\u5F0F: ${r.match}):`,r),{...r,match:void 0};if(L(o,t.pageName))return n(`Glob\u5339\u914D\u9875\u9762 ${t.pageName} (\u6A21\u5F0F: ${o}):`,r),r}return null}function L(e,t){let n=e.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${n}$`).test(t)}var K=j(()=>{"use strict";x()});function M(e){return(...t)=>{e&&console.log("[vite-plugin-multi-page]",...t)}}var Q=j(()=>{"use strict";x()});var q={};A(q,{cleanViteOutputDirectory:()=>me,discoverPages:()=>de,generateBuildConfig:()=>ue,getAvailableStrategies:()=>he,getViteOutputDirectory:()=>W});function ue(e){var g;let{entry:t="src/pages/*/main.{ts,js}",exclude:n=[],template:o="index.html",placeholder:r="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:u={},pageConfigs:y={},forceBuildStrategy:c}=e,s=M(!0),l={};try{let p=I.glob.sync(t,{cwd:process.cwd()}),f=U(p,t,n,s);if(f.length===0)return s("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let h=new Map,i=new Map;for(let m of f){let b={pageName:m.name,filePath:m.file,relativePath:v.relative(process.cwd(),m.file)},$=k(y,b,s),S=($==null?void 0:$.strategy)||"default";h.set(m.name,S),i.has(S)||i.set(S,[]),(g=i.get(S))==null||g.push(m.name)}if(s(`\u{1F4C4} \u53D1\u73B0 ${f.length} \u4E2A\u9875\u9762: ${f.map(m=>m.name).join(", ")}`),c){let m=i.get(c)||[];if(m.length===0)return s(`\u8B66\u544A: \u7B56\u7565 "${c}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};s(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${c}, \u9875\u9762: ${m.join(", ")}`);let b=Y(c,m,f,u[c],y,o,r,s);return l[c]=b,l}for(let[m,b]of i){if(b.length===0)continue;let $=u[m]||{},S=Y(m,b,f,$,y,o,r,s);l[m]=S}if(Object.keys(l).length===0){s("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let m=f.map($=>$.name),b=Y("default",m,f,{},y,o,r,s);l.default=b}let w=Object.keys(l);return s(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${w.join(", ")}`),l}catch(p){throw s("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",p),p}}function Y(e,t,n,o,r,u,y,c){let s={},l=[],g={};for(let h of t){let i=n.find(H=>H.name===h);if(!i)continue;let w={pageName:h,filePath:i.file,relativePath:v.relative(process.cwd(),i.file),strategy:e},m=k(r,w,c);m!=null&&m.define&&Object.assign(g,m.define);let b=u,$=`${h}.html`;C.existsSync(v.resolve(process.cwd(),$))?b=$:m!=null&&m.template&&(b=m.template);let S=v.resolve(process.cwd(),b);if(!C.existsSync(S)){c(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${b}`);continue}let E=C.readFileSync(S,"utf-8");if(E.includes(y)){let H=`./${i.file}`;E=E.replace(new RegExp(y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),H)}let G=v.resolve(process.cwd(),`.temp.mp.${h}.html`);C.writeFileSync(G,E),l.push(G),s[h]=G}let p={base:"./",build:{outDir:`dist/${e}`,rollupOptions:{input:s,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},emptyOutDir:!1},define:{}},f=p;return o&&(f=(0,X.mergeConfig)(p,o)),Object.keys(g).length>0&&(f.define={...f.define,...g}),f.build||(f.build={}),f.build.rollupOptions||(f.build.rollupOptions={}),f.build.rollupOptions.input=s,f.build.emptyOutDir=!1,c(`\u7B56\u7565 "${e}" - ${t.length} \u4E2A\u9875\u9762`),f}function W(e=[]){let t=e.findIndex(o=>o==="--outDir");if(t!==-1&&t+1<e.length){let o=e[t+1];return v.resolve(process.cwd(),o)}let n=e.find(o=>o.startsWith("--outDir="));if(n){let o=n.split("=")[1];return v.resolve(process.cwd(),o)}return v.resolve(process.cwd(),"dist")}function me(e=[]){let t=W(e),n=M(!0);try{C.existsSync(t)&&(C.rmSync(t,{recursive:!0,force:!0}),n(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${v.relative(process.cwd(),t)}`))}catch(o){n(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${t}`,o)}}function de(e){let{entry:t="src/pages/*/main.{ts,js}",exclude:n=[]}=e,o=M(!0);try{let r=I.glob.sync(t,{cwd:process.cwd()});return U(r,t,n,o)}catch(r){throw o("\u53D1\u73B0\u9875\u9762\u5931\u8D25:",r),r}}function he(e){let{entry:t="src/pages/*/main.{ts,js}",exclude:n=[],pageConfigs:o={}}=e,r=M(!1),u=new Set,y=I.glob.sync(t,{cwd:process.cwd()}),c=U(y,t,n,r);if(c.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${t}`);try{for(let s of c){let l={pageName:s.name,filePath:s.file,relativePath:v.relative(process.cwd(),s.file)},g=k(o,l,r),p=(g==null?void 0:g.strategy)||"default";u.add(p)}return Array.from(u).sort()}catch(s){return r("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",s),["default"]}}var X,I,v,C,B=j(()=>{"use strict";x();X=require("vite"),I=require("glob"),v=P(require("path")),C=P(require("fs"));J();K();Q()});var te={};A(te,{hasCustomConfig:()=>ye,loadUserConfig:()=>be});function ye(){for(let e of ee){let t=D.resolve(process.cwd(),e);if(N.existsSync(t))return!0}return!1}async function be(e){let t=await $e();if(t){let n=t(e);return n||{}}return null}async function we(e){if(e.endsWith(".ts"))try{let t=await N.promises.readFile(e,"utf-8"),n;try{n=await import("esbuild")}catch{throw console.error(`
|
|
3
3
|
\u274C \u65E0\u6CD5\u52A0\u8F7D TypeScript \u914D\u7F6E\u6587\u4EF6\uFF0C\u56E0\u4E3A\u627E\u4E0D\u5230 esbuild \u4F9D\u8D56\u3002`),console.error(`
|
|
4
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: ${
|
|
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(`
|
|
5
|
+
`),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${D.basename(e)}`)}let o=await n.transform(t,{loader:"ts",format:"cjs",target:"node16",sourcemap:!1}),r=new T.Module(e);return r.filename=e,r.paths=T.Module._nodeModulePaths(D.dirname(e)),r._compile(o.code,e),r.exports}catch(t){if(t instanceof Error&&t.message.includes("\u9700\u8981 esbuild \u4F9D\u8D56"))throw t;console.warn("esbuild \u8F6C\u8BD1\u5931\u8D25\uFF0C\u5C1D\u8BD5\u7B80\u5355\u8F6C\u6362:",t);let o=(await N.promises.readFile(e,"utf-8")).replace(/export\s+default\s+/,"module.exports = ").replace(/import\s+.*?from\s+['"][^'"]*['"];?\s*/g,"").replace(/:\s*[^=,})\]]+/g,""),r=new T.Module(e);return r.filename=e,r.paths=T.Module._nodeModulePaths(D.dirname(e)),r._compile(o,e),r.exports}if(e.endsWith(".js")||e.endsWith(".mjs"))return import(`${(0,Z.pathToFileURL)(e).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${e}`)}async function $e(){let e=process.cwd();for(let t of ee){let n=D.resolve(e,t);if(N.existsSync(n))try{let o=await we(n),r=o.default||o;if(typeof r=="function")return r;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${t} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(o){t.endsWith(".ts")?(console.error(`\u52A0\u8F7DTypeScript\u914D\u7F6E\u6587\u4EF6 ${t} \u5931\u8D25:`,o),console.log("\u63D0\u793A\uFF1A\u786E\u4FDD\u4F60\u7684\u9879\u76EE\u652F\u6301TypeScript\uFF0C\u6216\u8005\u4F7F\u7528 .js/.mjs \u914D\u7F6E\u6587\u4EF6")):console.error(`\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6 ${t} \u5931\u8D25:`,o)}}return null}var N,D,Z,T,ee,se=j(()=>{"use strict";x();N=P(require("fs")),D=P(require("path")),Z=require("url"),T=require("module"),ee=["multipage.config.js","multipage.config.mjs","multipage.config.ts"]});var ne={};A(ne,{DEFAULT_CONFIG:()=>F,isEmptyConfig:()=>Se,mergeWithDefaults:()=>xe});function xe(e){if(!e)return{...F};let t=e.strategies??e.buildStrategies??F.strategies;return{entry:e.entry??F.entry,exclude:e.exclude??F.exclude,template:e.template??F.template,placeholder:e.placeholder??F.placeholder,debug:e.debug??F.debug,strategies:t,pageConfigs:e.pageConfigs??F.pageConfigs,__forceBuildStrategy:e.__forceBuildStrategy}}function Se(e){if(Object.keys(e).length===0)return!0;let t=e.entry&&e.entry!==F.entry,n=e.strategies&&Object.keys(e.strategies).length>0||e.buildStrategies&&Object.keys(e.buildStrategies).length>0,o=e.pageConfigs&&(typeof e.pageConfigs=="function"||Object.keys(e.pageConfigs).length>0);return!t&&!n&&!o}var F,oe=j(()=>{"use strict";x();F={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,strategies:{default:{}},pageConfigs:{}}});var Ee={};A(Ee,{buildAll:()=>ie});module.exports=ge(Ee);x();var re=require("child_process"),a=P(require("fs")),d=P(require("path")),V=P(require("glob"));B();function ve(){let e=process.argv.slice(2),t=[],n=!1,o,r,u=3,y=!0;for(let c=0;c<e.length;c++){let s=e[c];if(s==="--debug")n=!0;else if(s==="--cwd")o=e[++c];else if(s==="--strategy")r=e[++c].split(",").map(g=>g.trim());else if(s==="--concurrency"){let l=e[++c];u=parseInt(l,10),(isNaN(u)||u<1)&&(console.error("\u274C \u5E76\u53D1\u6570\u5FC5\u987B\u662F\u5927\u4E8E0\u7684\u6574\u6570"),process.exit(1))}else s==="--flatten"?y=!0:s==="--no-flatten"?y=!1:s==="--help"||s==="-h"?(console.log(`
|
|
121
6
|
\u4F7F\u7528\u65B9\u6CD5: vite-mp [\u9009\u9879]
|
|
122
7
|
|
|
123
8
|
\u9009\u9879:
|
|
124
9
|
--debug \u542F\u7528\u8C03\u8BD5\u6A21\u5F0F
|
|
125
10
|
--cwd <dir> \u6307\u5B9A\u5DE5\u4F5C\u76EE\u5F55
|
|
126
11
|
--strategy <list> \u6307\u5B9A\u6784\u5EFA\u7B56\u7565\uFF0C\u652F\u6301\u9017\u53F7\u5206\u9694\u591A\u4E2A\u7B56\u7565
|
|
12
|
+
--concurrency <num> \u5E76\u53D1\u6784\u5EFA\u6570\uFF08\u9ED8\u8BA4\uFF1A3\uFF09
|
|
13
|
+
--flatten \u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784\uFF08\u9ED8\u8BA4\u542F\u7528\uFF09
|
|
14
|
+
--no-flatten \u7981\u7528\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784
|
|
127
15
|
--help, -h \u663E\u793A\u5E2E\u52A9\u4FE1\u606F
|
|
128
16
|
|
|
129
17
|
\u5176\u4ED6\u6240\u6709\u53C2\u6570\u5C06\u4F20\u9012\u7ED9 vite build \u547D\u4EE4
|
|
130
18
|
|
|
131
19
|
\u793A\u4F8B:
|
|
132
|
-
vite-mp # \u6784\u5EFA\u6240\u6709\u7B56\u7565
|
|
20
|
+
vite-mp # \u6784\u5EFA\u6240\u6709\u7B56\u7565\uFF08\u9ED8\u8BA4\u6241\u5E73\u5316\uFF09
|
|
133
21
|
vite-mp --strategy mobile # \u53EA\u6784\u5EFAmobile\u7B56\u7565
|
|
134
22
|
vite-mp --strategy mobile,tablet # \u6784\u5EFAmobile\u548Ctablet\u7B56\u7565
|
|
23
|
+
vite-mp --no-flatten # \u7981\u7528\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784
|
|
24
|
+
vite-mp --concurrency 2 # \u8BBE\u7F6E\u5E76\u53D1\u6570\u4E3A2
|
|
135
25
|
vite-mp --debug # \u542F\u7528\u8C03\u8BD5\u6A21\u5F0F
|
|
136
26
|
vite-mp --cwd example # \u5728example\u76EE\u5F55\u8FD0\u884C
|
|
137
27
|
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{
|
|
140
|
-
\u274C \u5931\u8D25
|
|
141
|
-
\u{1F389} \
|
|
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});
|
|
28
|
+
`),process.exit(0)):s!=="build"&&t.push(s)}return{viteBuildArgs:t,debug:n,cwd:o,strategies:r,concurrency:u,flatten:y}}async function Ce(){let{loadUserConfig:e,hasCustomConfig:t}=await Promise.resolve().then(()=>(se(),te)),{mergeWithDefaults:n}=await Promise.resolve().then(()=>(oe(),ne)),o=null;return t()&&(o=await e({mode:"production",command:"build",isCLI:!0}),o||console.log("\u274C \u914D\u7F6E\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25")),n(o)}function Fe(e,t,n){return new Promise(o=>{var l;let r=n?console.log.bind(console,`[${e}]`):()=>{},u={...process.env,VITE_MULTI_PAGE_STRATEGY:e},y=["build",...t],c=(0,re.spawn)("npx",["vite",...y],{stdio:n?"inherit":"pipe",env:u,cwd:process.cwd(),shell:process.platform==="win32"}),s="";n||(l=c.stderr)==null||l.on("data",g=>{s+=g.toString()}),c.on("close",g=>{let p=g===0,f=d.resolve(process.cwd(),"dist",e);if(p)try{if(a.existsSync(f)){let h=a.readdirSync(f);for(let i of h)if(i.startsWith(".temp.mp.")&&i.endsWith(".html")){let w=d.resolve(f,i),b=`${i.replace(/^\.temp\.mp\./,"").replace(/\.html$/,"")}.html`,$=d.resolve(f,b);a.renameSync(w,$)}}}catch(h){r("\u91CD\u547D\u540DHTML\u6587\u4EF6\u5931\u8D25:",h)}else!n&&s&&console.error(`\u7B56\u7565 ${e} \u9519\u8BEF\u8F93\u51FA:`,s);o({strategy:e,success:p,error:p?void 0:s||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${g}`,outputDir:f})}),c.on("error",g=>{r(`\u274C \u7B56\u7565 ${e} \u6784\u5EFA\u51FA\u9519:`,g.message);let p=W(t);o({strategy:e,success:!1,error:g.message,outputDir:p})})})}async function Pe(e){let t=V.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let n of t){let o=d.resolve(process.cwd(),n);try{a.unlinkSync(o)}catch{}}}async function Oe(e,t){let n=t?console.log.bind(console,"[flatten]"):()=>{},o=d.resolve(process.cwd(),"dist");if(!a.existsSync(o))return;n("\u5F00\u59CB\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784...");let r=[];for(let s of e){let l=d.resolve(o,s);if(a.existsSync(l)){let g=a.readdirSync(l);for(let p of g)if(p.endsWith(".html")){let f=d.resolve(l,p),h=d.resolve(o,p),i=a.existsSync(h)?d.resolve(o,`${s}-${p}`):h;a.renameSync(f,i),r.push(d.basename(i)),n(`\u79FB\u52A8HTML: ${s}/${p} -> ${d.basename(i)}`)}}}let u=d.resolve(o,"assets");if(a.existsSync(u)){let s=d.resolve(o,"assets-backup");a.existsSync(s)&&a.rmSync(s,{recursive:!0}),a.renameSync(u,s)}a.mkdirSync(u,{recursive:!0});let y=new Set;for(let s of e){let l=d.resolve(o,s);if(a.existsSync(l)){let g=d.resolve(l,"assets");if(a.existsSync(g)){let p=a.readdirSync(g);for(let f of p){let h=d.resolve(g,f),i=d.resolve(u,f);if(!y.has(f))a.renameSync(h,i),y.add(f),n(`\u79FB\u52A8\u8D44\u6E90: ${s}/assets/${f} -> assets/${f}`);else{let w=a.readFileSync(h),m=a.readFileSync(i);if(w.equals(m))a.unlinkSync(h),n(`\u5220\u9664\u91CD\u590D\u8D44\u6E90: ${s}/assets/${f} (\u5185\u5BB9\u76F8\u540C)`);else{let b=d.parse(f).name,$=d.parse(f).ext,S=`${b}-${s}${$}`,E=d.resolve(u,S);a.renameSync(h,E),n(`\u79FB\u52A8\u8D44\u6E90: ${s}/assets/${f} -> assets/${S} (\u5185\u5BB9\u4E0D\u540C)`)}}}}}}let c=new Set;for(let s of e){let l=d.resolve(o,s);if(a.existsSync(l)){let g=a.readdirSync(l);for(let p of g)if(!p.endsWith(".html")&&p!=="assets"){let f=d.resolve(l,p),h=d.resolve(o,p);a.statSync(f).isDirectory()?c.has(p)?(a.rmSync(f,{recursive:!0}),n(`\u5220\u9664\u91CD\u590D\u76EE\u5F55: ${s}/${p}`)):(a.existsSync(h)&&a.rmSync(h,{recursive:!0}),a.renameSync(f,h),c.add(p),n(`\u79FB\u52A8\u76EE\u5F55: ${s}/${p} -> ${p}`)):c.has(p)?(a.unlinkSync(f),n(`\u5220\u9664\u91CD\u590D\u6587\u4EF6: ${s}/${p}`)):(a.renameSync(f,h),c.add(p),n(`\u79FB\u52A8\u6587\u4EF6: ${s}/${p} -> ${p}`))}}}for(let s of r){let l=d.resolve(o,s);if(a.existsSync(l)){let g=a.readFileSync(l,"utf-8"),p="default";s==="mobile.html"?p="mobile":s==="tablet.html"?p="tablet":s.startsWith("mobile-")?p="mobile":s.startsWith("tablet-")&&(p="tablet");let f=d.resolve(o,"assets");if(a.existsSync(f)){let h=a.readdirSync(f);for(let i of h)if(i.includes(`-${p}`)){let m=i.replace(`-${p}`,"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),b=new RegExp(`\\./assets/${m}(?=\\s|>|"|')`,"g");g=g.replace(b,`./assets/${i}`)}}a.writeFileSync(l,g),n(`\u66F4\u65B0\u8D44\u6E90\u8DEF\u5F84: ${s} -> assets/`)}}for(let s of e){let l=d.resolve(o,s);if(a.existsSync(l))try{a.rmSync(l,{recursive:!0}),n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55: ${s}`)}catch(g){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u5931\u8D25: ${s}`,g)}}n("\u6241\u5E73\u5316\u5B8C\u6210")}async function De(e,t){let n=t?console.log.bind(console,"[cleanup]"):()=>{},o=V.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let r of o){let u=d.resolve(process.cwd(),r);try{a.unlinkSync(u)}catch(y){n(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${r}`,y)}}for(let r of e){let u=d.resolve(process.cwd(),"dist",r);if(a.existsSync(u)){let y=V.sync("*.mp.temp.html",{cwd:u});for(let c of y){let s=d.resolve(u,c);try{a.unlinkSync(s)}catch(l){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${r}/${c}`,l)}}}}}async function ie(){let{viteBuildArgs:e,debug:t,cwd:n,strategies:o,concurrency:r,flatten:u}=ve(),y=t?console.log.bind(console,"[main]"):()=>{};if(n){let c=d.resolve(process.cwd(),n);a.existsSync(c)||(console.error(`\u274C \u6307\u5B9A\u7684\u76EE\u5F55\u4E0D\u5B58\u5728: ${c}`),process.exit(1)),process.chdir(c),y(`\u5207\u6362\u5DE5\u4F5C\u76EE\u5F55\u5230: ${c}`)}try{let c=await Ce(),{cleanViteOutputDirectory:s}=await Promise.resolve().then(()=>(B(),q));s(e),await je(c,e,t,o,r,u)}catch(c){console.error("\u274C \u6784\u5EFA\u5931\u8D25:",c instanceof Error?c.message:c),process.exit(1)}}async function je(e,t,n,o,r=3,u=!1){let y=n?console.log.bind(console,"[strategy-mode]"):()=>{},{getAvailableStrategies:c}=await Promise.resolve().then(()=>(B(),q)),s=c({entry:e.entry||"src/pages/*/main.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",pageConfigs:e.pageConfigs||{},strategies:e.strategies||{}});if(s.length===0)throw new Error("\u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565");let l;if(o&&o.length>0){let i=o.filter(w=>!s.includes(w));if(i.length>0)throw new Error(`\u6307\u5B9A\u7684\u7B56\u7565\u4E0D\u5B58\u5728: ${i.join(", ")}
|
|
29
|
+
\u53EF\u7528\u7B56\u7565: ${s.join(", ")}`);l=o}else l=s;y(`\u{1F680} \u5F00\u59CB\u6784\u5EFA\u7B56\u7565: ${l.join(", ")} (\u5E76\u53D1\u6570: ${r})`);let g=[];for(let i=0;i<l.length;i+=r){let w=l.slice(i,i+r),m=w.map($=>Fe($,t,n)),b=await Promise.all(m);g.push(...b),n&&y(`\u6279\u6B21 ${Math.floor(i/r)+1} \u5B8C\u6210: ${w.join(", ")}`)}let p=g.filter(i=>i.success).length;g.length-p>0&&(console.log(`
|
|
30
|
+
\u274C \u6784\u5EFA\u5931\u8D25:`),g.filter(i=>!i.success).forEach(i=>{console.log(` - ${i.strategy}: ${i.error}`)}),await Pe(n),process.exit(1)),u&&await Oe(l,n),await De(l,n);let h=g.filter(i=>i.success);if(console.log(`
|
|
31
|
+
\u{1F389} \u6784\u5EFA\u6210\u529F\uFF01`),console.log(`\u{1F4E6} \u7B56\u7565: ${h.map(i=>i.strategy).join(", ")}`),u){console.log("\u{1F4C1} \u8F93\u51FA\u7ED3\u6784: \u6241\u5E73\u5316");let i=d.resolve(process.cwd(),"dist");if(a.existsSync(i)){let w=a.readdirSync(i).filter(m=>m.endsWith(".html"));console.log(` - HTML\u6587\u4EF6: ${w.join(", ")}`)}}else for(let i of h){let w=d.resolve(process.cwd(),"dist",i.strategy);if(a.existsSync(w)){let m=a.readdirSync(w).filter(b=>b.endsWith(".html"));console.log(` - ${i.strategy}: ${m.join(", ")}`)}}}require.main===module&&ie().catch(e=>{console.error("\u274C \u672A\u5904\u7406\u7684\u9519\u8BEF:",e),process.exit(1)});0&&(module.exports={buildAll});
|
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,12 +17,9 @@ 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
23
|
}
|
|
29
24
|
interface ConfigStrategy extends Omit<UserConfig, 'plugins'> {
|
|
30
25
|
}
|
|
@@ -44,7 +39,6 @@ interface PageContext {
|
|
|
44
39
|
isMatched?: boolean;
|
|
45
40
|
}
|
|
46
41
|
type PageConfigFunction = (context: PageContext) => PageConfig | null;
|
|
47
|
-
type PageEnvFunction = (context: PageContext) => Record<string, string> | null;
|
|
48
42
|
interface PluginContext {
|
|
49
43
|
mode: string;
|
|
50
44
|
command: 'build' | 'serve';
|
|
@@ -77,9 +71,5 @@ declare function getAvailableStrategies(options: BuildConfigOptions): string[];
|
|
|
77
71
|
declare function mergeWithDefaults(userConfig: MultiPageOptions | null | undefined): MultiPageOptions;
|
|
78
72
|
|
|
79
73
|
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
74
|
|
|
85
|
-
export { type ConfigFunction, type ConfigTransformFunction, type Options, type PageConfig, type PageContext, type PluginContext, cleanViteOutputDirectory, viteMultiPage as default, defineConfig, defineConfigTransform, generateBuildConfig, getAvailableStrategies, getViteOutputDirectory, mergeWithDefaults,
|
|
75
|
+
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,12 +17,9 @@ 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
23
|
}
|
|
29
24
|
interface ConfigStrategy extends Omit<UserConfig, 'plugins'> {
|
|
30
25
|
}
|
|
@@ -44,7 +39,6 @@ interface PageContext {
|
|
|
44
39
|
isMatched?: boolean;
|
|
45
40
|
}
|
|
46
41
|
type PageConfigFunction = (context: PageContext) => PageConfig | null;
|
|
47
|
-
type PageEnvFunction = (context: PageContext) => Record<string, string> | null;
|
|
48
42
|
interface PluginContext {
|
|
49
43
|
mode: string;
|
|
50
44
|
command: 'build' | 'serve';
|
|
@@ -77,9 +71,5 @@ declare function getAvailableStrategies(options: BuildConfigOptions): string[];
|
|
|
77
71
|
declare function mergeWithDefaults(userConfig: MultiPageOptions | null | undefined): MultiPageOptions;
|
|
78
72
|
|
|
79
73
|
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
74
|
|
|
85
|
-
export { type ConfigFunction, type ConfigTransformFunction, type Options, type PageConfig, type PageContext, type PluginContext, cleanViteOutputDirectory, viteMultiPage as default, defineConfig, defineConfigTransform, generateBuildConfig, getAvailableStrategies, getViteOutputDirectory, mergeWithDefaults,
|
|
75
|
+
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,11 +1,11 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`);
|
|
3
|
-
${
|
|
1
|
+
"use strict";var oe=Object.create;var I=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var ge=Object.getPrototypeOf,ce=Object.prototype.hasOwnProperty;var pe=(t,e)=>{for(var i in e)I(t,i,{get:e[i],enumerable:!0})},z=(t,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of le(e))!ce.call(t,n)&&n!==i&&I(t,n,{get:()=>e[n],enumerable:!(s=ae(e,n))||s.enumerable});return t};var P=(t,e,i)=>(i=t!=null?oe(ge(t)):{},z(e||!t||!t.__esModule?I(i,"default",{value:t,enumerable:!0}):i,t)),fe=t=>z(I({},"__esModule",{value:!0}),t);var Ce={};pe(Ce,{cleanViteOutputDirectory:()=>X,default:()=>xe,defineConfig:()=>ne,defineConfigTransform:()=>re,generateBuildConfig:()=>L,getAvailableStrategies:()=>Z,getViteOutputDirectory:()=>W,mergeWithDefaults:()=>R,viteMultiPage:()=>se});module.exports=fe(Ce);var ie=require("vite");var C=P(require("path")),j=P(require("fs")),q=require("glob");var S=P(require("path"));function _(t,e,i,s){let n=[],o=new Map,c=e.replace(/\/\*.*$/,"");(!c||c===e)&&(c=S.dirname(e.split("*")[0]));let l=[];for(let r of t){if(i.includes(r))continue;let a=r.replace(/\\/g,"/"),g=c.replace(/\\/g,"/"),f=S.posix.relative(g,a).split("/");if(f.length===1){let u=f[0],m=S.posix.basename(u,S.posix.extname(u));l.push({name:m,file:r,priority:1})}else if(f.length>=2){let u=S.posix.basename(a,S.posix.extname(a)),m=f[0];u==="main"&&l.push({name:m,file:r,priority:2})}}for(let r of l){let a=o.get(r.name);a?r.priority>a.priority&&o.set(r.name,{file:r.file,priority:r.priority}):o.set(r.name,{file:r.file,priority:r.priority})}for(let[r,{file:a}]of o.entries())n.push({name:r,file:a});return n}function J(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function N(t){return(...e)=>{t&&console.log("[vite-plugin-multi-page]",...e)}}function $(t,e,i){if(!t)return null;if(typeof t=="function")return t(e);for(let[s,n]of Object.entries(t)){if(s===e.pageName)return i(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${e.pageName}:`,n),n;if(n.match&&(Array.isArray(n.match)?n.match:[n.match]).some(l=>U(l,e.pageName)||U(l,e.relativePath)||U(l,e.filePath)))return i(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${n.match}):`,n),{...n,match:void 0};if(U(s,e.pageName))return i(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${s}):`,n),n}return null}function U(t,e){let i=t.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${i}$`).test(e)}function de(t,e,i){try{let s=q.glob.sync(e.entry,{cwd:process.cwd()}),n=_(s,e.entry,e.exclude,i);if(n.length===0){i("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6");return}let o=e.devStrategy||t.config.__cliStrategy||t.config.strategy;o&&(i(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${o}`),n=n.filter(c=>{let l={pageName:c.name,filePath:c.file,relativePath:C.relative(process.cwd(),c.file),strategy:void 0,isMatched:!1},r=$(e.pageConfigs,l,i),a=(r==null?void 0:r.strategy)||"default";return o==="default"?a==="default":a===o}),i(`\u7B56\u7565 "${o}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${n.map(c=>c.name).join(", ")||"\u65E0"}`)),i("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",n),t.middlewares.use(async(c,l,r)=>{try{let g=(c.url||"").split("?")[0];if(g==="/"){let u=me(n,e,i);l.statusCode=200,l.setHeader("Content-Type","text/html"),l.end(u);return}if(g.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!g.endsWith(".html")||g.startsWith("/@")||g.includes("__vite")||g.startsWith("/node_modules"))return r();let p="";if(g.endsWith(".html"))p=C.basename(g,".html");else if(g.startsWith("/")){let u=g.substring(1);if(n.find(m=>m.name===u))p=u;else{let m=u.split("/");if(m.length>1){let E=m[0];n.find(d=>d.name===E)&&(p=E,i(`History \u8DEF\u7531\u5339\u914D: ${g} -> ${E}`))}}}if(!p)return r();let f=n.find(u=>u.name===p);return f?ue(l,f,e,i):r()}catch(a){i(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${a}`),r(a)}}),i("\u5F00\u53D1\u670D\u52A1\u5668\u914D\u7F6E\u5B8C\u6210")}catch(s){throw i(`\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668\u5931\u8D25: ${s}`),s}}function ue(t,e,i,s){var g;let n={pageName:e.name,filePath:e.file,relativePath:C.relative(process.cwd(),e.file),strategy:void 0,isMatched:!1},o=$(i.pageConfigs,n,s);if(o!=null&&o.strategy)n.strategy=o.strategy;else if((g=i.appliedStrategies)!=null&&g.has(e.name)){let p=i.appliedStrategies.get(e.name);p&&(n.strategy=p)}let c="",l=C.resolve(process.cwd(),`${e.name}.html`);if(j.existsSync(l)?c=l:o!=null&&o.template?c=C.resolve(process.cwd(),o.template):c=C.resolve(process.cwd(),i.template),!j.existsSync(c)){t.statusCode=404,t.end("Template not found");return}let r=j.readFileSync(c,"utf-8");if(r.includes(i.placeholder)){let p=r;if(r=r.split(i.placeholder).join(`/${e.file}`),r===p){let f=J(i.placeholder),u=new RegExp(f,"g");r=p.replace(u,`/${e.file}`),r===p&&(r=p.replace(/\{\{ENTRY_FILE\}\}/g,`/${e.file}`))}}if(o!=null&&o.define){let p=Object.entries(o.define).map(([f,u])=>{let m=typeof u=="string"?`"${u}"`:JSON.stringify(u);return`window.${f} = ${m};`}).join(`
|
|
2
|
+
`);p&&(r=r.replace(/<\/head>/i,`<script type="text/javascript">
|
|
3
|
+
${p}
|
|
4
4
|
</script>
|
|
5
|
-
</head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(
|
|
5
|
+
</head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(r)}var Q=de;function me(t,e,i){try{let s=t.map(n=>{var a;let o={pageName:n.name,filePath:n.file,relativePath:C.relative(process.cwd(),n.file),strategy:void 0,isMatched:!1},c=$(e.pageConfigs,o,i),l="default";if(c!=null&&c.strategy)l=c.strategy;else if((a=e.appliedStrategies)!=null&&a.has(n.name)){let g=e.appliedStrategies.get(n.name);g&&(l=g)}let r=l!=="default"?`<span class="badge">${l}</span>`:"";return`
|
|
6
6
|
<div class="page-item">
|
|
7
7
|
<a href="${n.name}.html" class="page-link">
|
|
8
|
-
${n.name}${
|
|
8
|
+
${n.name}${r}
|
|
9
9
|
</a>
|
|
10
10
|
<div class="page-path">${n.file}</div>
|
|
11
11
|
</div>`}).join("");return`
|
|
@@ -83,11 +83,11 @@ ${s}
|
|
|
83
83
|
\u627E\u5230 ${t.length} \u4E2A\u9875\u9762
|
|
84
84
|
</div>
|
|
85
85
|
<div class="page-list">
|
|
86
|
-
${
|
|
86
|
+
${s}
|
|
87
87
|
</div>
|
|
88
88
|
</body>
|
|
89
89
|
</html>
|
|
90
|
-
`}catch(
|
|
90
|
+
`}catch(s){return i(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${s}`),`
|
|
91
91
|
<!DOCTYPE html>
|
|
92
92
|
<html>
|
|
93
93
|
<head>
|
|
@@ -95,13 +95,13 @@ ${s}
|
|
|
95
95
|
</head>
|
|
96
96
|
<body>
|
|
97
97
|
<h1>\u751F\u6210\u7D22\u5F15\u9875\u65F6\u53D1\u751F\u9519\u8BEF</h1>
|
|
98
|
-
<p>${
|
|
98
|
+
<p>${s}</p>
|
|
99
99
|
</body>
|
|
100
100
|
</html>
|
|
101
|
-
`}}var
|
|
101
|
+
`}}var K=require("vite"),G=require("glob"),h=P(require("path")),b=P(require("fs"));function L(t){var g;let{entry:e="src/pages/*/main.{ts,js}",exclude:i=[],template:s="index.html",placeholder:n="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:o={},pageConfigs:c={},forceBuildStrategy:l}=t,r=N(!0),a={};try{let p=G.glob.sync(e,{cwd:process.cwd()}),f=_(p,e,i,r);if(f.length===0)return r("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let u=new Map,m=new Map;for(let d of f){let y={pageName:d.name,filePath:d.file,relativePath:h.relative(process.cwd(),d.file)},x=$(c,y,r),v=(x==null?void 0:x.strategy)||"default";u.set(d.name,v),m.has(v)||m.set(v,[]),(g=m.get(v))==null||g.push(d.name)}if(r(`\u{1F4C4} \u53D1\u73B0 ${f.length} \u4E2A\u9875\u9762: ${f.map(d=>d.name).join(", ")}`),l){let d=m.get(l)||[];if(d.length===0)return r(`\u8B66\u544A: \u7B56\u7565 "${l}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};r(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${l}, \u9875\u9762: ${d.join(", ")}`);let y=V(l,d,f,o[l],c,s,n,r);return a[l]=y,a}for(let[d,y]of m){if(y.length===0)continue;let x=o[d]||{},v=V(d,y,f,x,c,s,n,r);a[d]=v}if(Object.keys(a).length===0){r("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let d=f.map(x=>x.name),y=V("default",d,f,{},c,s,n,r);a.default=y}let E=Object.keys(a);return r(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${E.join(", ")}`),a}catch(p){throw r("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",p),p}}function V(t,e,i,s,n,o,c,l){let r={},a=[],g={};for(let u of e){let m=i.find(B=>B.name===u);if(!m)continue;let E={pageName:u,filePath:m.file,relativePath:h.relative(process.cwd(),m.file),strategy:t},d=$(n,E,l);d!=null&&d.define&&Object.assign(g,d.define);let y=o,x=`${u}.html`;b.existsSync(h.resolve(process.cwd(),x))?y=x:d!=null&&d.template&&(y=d.template);let v=h.resolve(process.cwd(),y);if(!b.existsSync(v)){l(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${y}`);continue}let D=b.readFileSync(v,"utf-8");if(D.includes(c)){let B=`./${m.file}`;D=D.replace(new RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),B)}let k=h.resolve(process.cwd(),`.temp.mp.${u}.html`);b.writeFileSync(k,D),a.push(k),r[u]=k}let p={base:"./",build:{outDir:`dist/${t}`,rollupOptions:{input:r,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},emptyOutDir:!1},define:{}},f=p;return s&&(f=(0,K.mergeConfig)(p,s)),Object.keys(g).length>0&&(f.define={...f.define,...g}),f.build||(f.build={}),f.build.rollupOptions||(f.build.rollupOptions={}),f.build.rollupOptions.input=r,f.build.emptyOutDir=!1,l(`\u7B56\u7565 "${t}" - ${e.length} \u4E2A\u9875\u9762`),f}function W(t=[]){let e=t.findIndex(s=>s==="--outDir");if(e!==-1&&e+1<t.length){let s=t[e+1];return h.resolve(process.cwd(),s)}let i=t.find(s=>s.startsWith("--outDir="));if(i){let s=i.split("=")[1];return h.resolve(process.cwd(),s)}return h.resolve(process.cwd(),"dist")}function X(t=[]){let e=W(t),i=N(!0);try{b.existsSync(e)&&(b.rmSync(e,{recursive:!0,force:!0}),i(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${h.relative(process.cwd(),e)}`))}catch(s){i(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,s)}}function Z(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:i=[],pageConfigs:s={}}=t,n=N(!1),o=new Set,c=G.glob.sync(e,{cwd:process.cwd()}),l=_(c,e,i,n);if(l.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let r of l){let a={pageName:r.name,filePath:r.file,relativePath:h.relative(process.cwd(),r.file)},g=$(s,a,n),p=(g==null?void 0:g.strategy)||"default";o.add(p)}return Array.from(o).sort()}catch(r){return n("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",r),["default"]}}var T=P(require("fs")),O=P(require("path")),ee=require("url"),M=require("module"),te=["multipage.config.js","multipage.config.mjs","multipage.config.ts"];function Y(){for(let t of te){let e=O.resolve(process.cwd(),t);if(T.existsSync(e))return!0}return!1}async function H(t){let e=await he();if(e){let i=e(t);return i||{}}return null}async function ye(t){if(t.endsWith(".ts"))try{let e=await T.promises.readFile(t,"utf-8"),i;try{i=await import("esbuild")}catch{throw console.error(`
|
|
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: ${
|
|
104
|
+
`),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${O.basename(t)}`)}let s=await i.transform(e,{loader:"ts",format:"cjs",target:"node16",sourcemap:!1}),n=new M.Module(t);return n.filename=t,n.paths=M.Module._nodeModulePaths(O.dirname(t)),n._compile(s.code,t),n.exports}catch(e){if(e instanceof Error&&e.message.includes("\u9700\u8981 esbuild \u4F9D\u8D56"))throw e;console.warn("esbuild \u8F6C\u8BD1\u5931\u8D25\uFF0C\u5C1D\u8BD5\u7B80\u5355\u8F6C\u6362:",e);let s=(await T.promises.readFile(t,"utf-8")).replace(/export\s+default\s+/,"module.exports = ").replace(/import\s+.*?from\s+['"][^'"]*['"];?\s*/g,"").replace(/:\s*[^=,})\]]+/g,""),n=new M.Module(t);return n.filename=t,n.paths=M.Module._nodeModulePaths(O.dirname(t)),n._compile(s,t),n.exports}if(t.endsWith(".js")||t.endsWith(".mjs"))return import(`${(0,ee.pathToFileURL)(t).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${t}`)}async function he(){let t=process.cwd();for(let e of te){let i=O.resolve(t,e);if(T.existsSync(i))try{let s=await ye(i),n=s.default||s;if(typeof n=="function")return n;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${e} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(s){e.endsWith(".ts")?(console.error(`\u52A0\u8F7DTypeScript\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,s),console.log("\u63D0\u793A\uFF1A\u786E\u4FDD\u4F60\u7684\u9879\u76EE\u652F\u6301TypeScript\uFF0C\u6216\u8005\u4F7F\u7528 .js/.mjs \u914D\u7F6E\u6587\u4EF6")):console.error(`\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,s)}}return null}var F={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,strategies:{default:{}},pageConfigs:{}};function R(t){if(!t)return{...F};let e=t.strategies??t.buildStrategies??F.strategies;return{entry:t.entry??F.entry,exclude:t.exclude??F.exclude,template:t.template??F.template,placeholder:t.placeholder??F.placeholder,debug:t.debug??F.debug,strategies:e,pageConfigs:t.pageConfigs??F.pageConfigs,__forceBuildStrategy:t.__forceBuildStrategy}}var A=P(require("fs"));function ne(t){return typeof t=="function"?t:()=>t}function re(t){return t}function se(t){let e,i=[],s=()=>{};return{name:"vite-multi-page",async configResolved(n){let o=null;Y()&&(o=await H({mode:n.command==="serve"?"development":"production",command:n.command,isCLI:!1}));let c=R(o);e=t?t(c,{mode:n.command==="serve"?"development":"production",command:n.command,isCLI:!1}):c,s=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{},s("Vite\u914D\u7F6E\u5DF2\u89E3\u6790, \u4F7F\u7528\u914D\u7F6E:",{strategies:Object.keys(e.strategies||{}),entry:e.entry})},async config(n,{command:o}){var c;if(o==="serve"){let l=process.argv,r=l.find(a=>a.startsWith("--strategy="));if(r){let a=r.split("=")[1];a&&(process.env.VITE_MULTI_PAGE_STRATEGY=a)}else{let a=l.findIndex(g=>g==="--strategy");if(a!==-1&&a+1<l.length){let g=l[a+1];process.env.VITE_MULTI_PAGE_STRATEGY=g}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(o==="build"){if(!e){let g=null;Y()&&(g=await H({mode:"production",command:"build",isCLI:!1}));let p=R(g);e=t?t(p,{mode:"production",command:"build",isCLI:!1}):p,s=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{}}s("\u914D\u7F6E\u6784\u5EFA\u6A21\u5F0F");let l=process.env.VITE_MULTI_PAGE_STRATEGY,r=L({entry:e.entry||"src/pages/**/*.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",strategies:e.strategies||{},pageConfigs:e.pageConfigs||{},forceBuildStrategy:l}),a=Object.keys(r)[0];if(a&&r[a]){s(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${a}`);let g=r[a],p=(0,ie.mergeConfig)(n,g);Object.assign(n,p),s(`\u5DF2\u5E94\u7528\u7B56\u7565 "${a}" \u7684\u914D\u7F6E:`,{build:!!g.build,define:!!g.define,plugins:((c=g.plugins)==null?void 0:c.length)||0})}else throw s("\u672A\u627E\u5230\u53EF\u7528\u7684\u6784\u5EFA\u7B56\u7565\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u914D\u7F6E"),new Error(`\u274C \u6784\u5EFA\u5931\u8D25: \u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565
|
|
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"){
|
|
119
|
+
});`)}},configureServer(n){if(n.config.command==="serve"){s("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let o=process.env.VITE_MULTI_PAGE_STRATEGY||"default";s(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${o}`),Q(n,{entry:e.entry||"src/pages/**/*.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",strategies:e.strategies||{},pageConfigs:e.pageConfigs||{},devStrategy:o},s)}},writeBundle(){},buildEnd(){i.length>0&&(s(`\u6E05\u7406 ${i.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),i.forEach(n=>{try{A.existsSync(n)&&(A.unlinkSync(n),s(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${n}`))}catch(o){s(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${n}`,o)}}),i.length=0)}}}var xe=se;0&&(module.exports={cleanViteOutputDirectory,defineConfig,defineConfigTransform,generateBuildConfig,getAvailableStrategies,getViteOutputDirectory,mergeWithDefaults,viteMultiPage});
|
|
120
120
|
//# sourceMappingURL=index.js.map
|