@fchc8/vite-plugin-multi-page 2.0.0 → 2.2.2
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/build-config-TPFCXXIR.mjs +2 -0
- package/dist/chunk-3Q23JRUZ.mjs +2 -0
- package/dist/cli.mjs +28 -0
- package/dist/config-loader-5G3KL6TE.mjs +2 -0
- package/dist/defaults-A5TQPXKR.mjs +2 -0
- package/dist/index.d.ts +2 -3
- package/dist/index.js +12 -15
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +13 -16
- package/dist/index.mjs.map +1 -1
- package/package.json +13 -13
- package/dist/cli.js +0 -31
- package/dist/index.d.mts +0 -75
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{mergeConfig as A}from"vite";import{glob as j}from"glob";import*as u from"path";import*as C from"fs";import*as x from"path";function $(r,e,l,i){let n=[],f=new Map,g=e.replace(/\/\*.*$/,"");(!g||g===e)&&(g=x.dirname(e.split("*")[0]));let o=[];for(let t of r){if(l.includes(t))continue;let c=t.replace(/\\/g,"/"),m=g.replace(/\\/g,"/"),P=x.posix.relative(m,c).split("/");if(P.length===1){let s=P[0],d=x.posix.basename(s,x.posix.extname(s));o.push({name:d,file:t,priority:1})}else if(P.length>=2){let s=x.posix.basename(c,x.posix.extname(c)),d=P[0];s==="main"&&o.push({name:d,file:t,priority:2})}}for(let t of o){let c=f.get(t.name);c?t.priority>c.priority&&f.set(t.name,{file:t.file,priority:t.priority}):f.set(t.name,{file:t.file,priority:t.priority})}for(let[t,{file:c}]of f.entries())n.push({name:t,file:c});return n}function v(r,e,l){if(!r)return null;if(typeof r=="function")return r(e);for(let[i,n]of Object.entries(r)){if(i===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(o=>O(o,e.pageName)||O(o,e.relativePath)||O(o,e.filePath)))return l(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${n.match}):`,n),{...n,match:void 0};if(O(i,e.pageName))return l(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${i}):`,n),n}return null}function O(r,e){let l=r.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${l}$`).test(e)}function F(r){return(...e)=>{r&&console.log("[vite-plugin-multi-page]",...e)}}async function q(r){let{entry:e="src/pages/*/main.{ts,js}",exclude:l=[],template:i="index.html",placeholder:n="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:f={},pageConfigs:g={},forceBuildStrategy:o}=r,t=F(!0),c={};try{let m=j.sync(e,{cwd:process.cwd()}),p=$(m,e,l,t);if(p.length===0)return t("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let P=new Map,s=new Map;for(let a of p){let h={pageName:a.name,filePath:a.file,relativePath:u.relative(process.cwd(),a.file)},y=v(g,h,t)?.strategy||"default";P.set(a.name,y),s.has(y)||s.set(y,[]),s.get(y)?.push(a.name)}if(t(`\u{1F4C4} \u53D1\u73B0 ${p.length} \u4E2A\u9875\u9762: ${p.map(a=>a.name).join(", ")}`),o){let a=s.get(o)||[];if(a.length===0)return t(`\u8B66\u544A: \u7B56\u7565 "${o}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};t(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${o}, \u9875\u9762: ${a.join(", ")}`);let h=await _(o,a,p,f[o],g,i,n,t);return c[o]=h,c}for(let[a,h]of s){if(h.length===0)continue;let w=f[a]||{},y=await _(a,h,p,w,g,i,n,t);c[a]=y}if(Object.keys(c).length===0){t("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let a=p.map(w=>w.name),h=await _("default",a,p,{},g,i,n,t);c.default=h}let d=Object.keys(c);return t(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${d.join(", ")}`),c}catch(m){throw t("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",m),m}}async function _(r,e,l,i,n,f,g,o){let t={},c=[],m={};for(let d of e){let a=l.find(S=>S.name===d);if(!a)continue;let h={pageName:d,filePath:a.file,relativePath:u.relative(process.cwd(),a.file),strategy:r},w=v(n,h,o);w?.define&&Object.assign(m,w.define);let y=f,R=`${d}.html`;C.existsSync(u.resolve(process.cwd(),R))?y=R:w?.template&&(y=w.template);let U=u.resolve(process.cwd(),y);if(!C.existsSync(U)){o(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${y}`);continue}let b=C.readFileSync(U,"utf-8");if(b.includes(g)){let S=`./${a.file}`;b=b.replace(new RegExp(g.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),S)}let N=u.resolve(process.cwd(),`.temp.mp.${d}.html`);C.writeFileSync(N,b),c.push(N),t[d]=N}let p={input:t,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},P={base:"./",build:{outDir:`dist/${r}`,rollupOptions:p,rolldownOptions:p,emptyOutDir:!1},define:{}},s=P;return i&&(s=A(P,i)),Object.keys(m).length>0&&(s.define={...s.define,...m}),s.build||(s.build={}),s.build.rollupOptions||(s.build.rollupOptions={}),s.build.rolldownOptions||(s.build.rolldownOptions={}),s.build.rollupOptions.input=t,s.build.rolldownOptions.input=t,s.build.emptyOutDir=!1,o(`\u7B56\u7565 "${r}" - ${e.length} \u4E2A\u9875\u9762`),s}function M(r=[]){let e=r.findIndex(i=>i==="--outDir");if(e!==-1&&e+1<r.length){let i=r[e+1];return u.resolve(process.cwd(),i)}let l=r.find(i=>i.startsWith("--outDir="));if(l){let i=l.split("=")[1];return u.resolve(process.cwd(),i)}return u.resolve(process.cwd(),"dist")}function J(r=[]){let e=M(r),l=F(!0);try{C.existsSync(e)&&(C.rmSync(e,{recursive:!0,force:!0}),l(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${u.relative(process.cwd(),e)}`))}catch(i){l(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,i)}}function K(r){let{entry:e="src/pages/*/main.{ts,js}",exclude:l=[]}=r,i=F(!0);try{let n=j.sync(e,{cwd:process.cwd()});return $(n,e,l,i)}catch(n){throw i("\u53D1\u73B0\u9875\u9762\u5931\u8D25:",n),n}}function Q(r){let{entry:e="src/pages/*/main.{ts,js}",exclude:l=[],pageConfigs:i={}}=r,n=F(!1),f=new Set,g=j.sync(e,{cwd:process.cwd()}),o=$(g,e,l,n);if(o.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let t of o){let c={pageName:t.name,filePath:t.file,relativePath:u.relative(process.cwd(),t.file)},p=v(i,c,n)?.strategy||"default";f.add(p)}return Array.from(f).sort()}catch(t){return n("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",t),["default"]}}export{q as a,M as b,J as c,K as d,Q as e};
|
package/dist/cli.mjs
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{b as x}from"./chunk-3Q23JRUZ.mjs";import{spawn as D}from"child_process";import*as s from"fs";import*as i from"path";import*as S from"glob";import{fileURLToPath as F}from"url";function C(){let c=process.argv.slice(2),h=[],t=!1,l,u,m=3,d=!0;for(let a=0;a<c.length;a++){let e=c[a];if(e==="--debug")t=!0;else if(e==="--cwd")l=c[++a];else if(e==="--strategy")u=c[++a].split(",").map(f=>f.trim());else if(e==="--concurrency"){let o=c[++a];m=parseInt(o,10),(isNaN(m)||m<1)&&(console.error("\u274C \u5E76\u53D1\u6570\u5FC5\u987B\u662F\u5927\u4E8E0\u7684\u6574\u6570"),process.exit(1))}else e==="--flatten"?d=!0:e==="--no-flatten"?d=!1:e==="--help"||e==="-h"?(console.log(`
|
|
3
|
+
\u4F7F\u7528\u65B9\u6CD5: vite-mp [\u9009\u9879]
|
|
4
|
+
|
|
5
|
+
\u9009\u9879:
|
|
6
|
+
--debug \u542F\u7528\u8C03\u8BD5\u6A21\u5F0F
|
|
7
|
+
--cwd <dir> \u6307\u5B9A\u5DE5\u4F5C\u76EE\u5F55
|
|
8
|
+
--strategy <list> \u6307\u5B9A\u6784\u5EFA\u7B56\u7565\uFF0C\u652F\u6301\u9017\u53F7\u5206\u9694\u591A\u4E2A\u7B56\u7565
|
|
9
|
+
--concurrency <num> \u5E76\u53D1\u6784\u5EFA\u6570\uFF08\u9ED8\u8BA4\uFF1A3\uFF09
|
|
10
|
+
--flatten \u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784\uFF08\u9ED8\u8BA4\u542F\u7528\uFF09
|
|
11
|
+
--no-flatten \u7981\u7528\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784
|
|
12
|
+
--help, -h \u663E\u793A\u5E2E\u52A9\u4FE1\u606F
|
|
13
|
+
|
|
14
|
+
\u5176\u4ED6\u6240\u6709\u53C2\u6570\u5C06\u4F20\u9012\u7ED9 vite build \u547D\u4EE4
|
|
15
|
+
|
|
16
|
+
\u793A\u4F8B:
|
|
17
|
+
vite-mp # \u6784\u5EFA\u6240\u6709\u7B56\u7565\uFF08\u9ED8\u8BA4\u6241\u5E73\u5316\uFF09
|
|
18
|
+
vite-mp --strategy mobile # \u53EA\u6784\u5EFAmobile\u7B56\u7565
|
|
19
|
+
vite-mp --strategy mobile,tablet # \u6784\u5EFAmobile\u548Ctablet\u7B56\u7565
|
|
20
|
+
vite-mp --no-flatten # \u7981\u7528\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784
|
|
21
|
+
vite-mp --concurrency 2 # \u8BBE\u7F6E\u5E76\u53D1\u6570\u4E3A2
|
|
22
|
+
vite-mp --debug # \u542F\u7528\u8C03\u8BD5\u6A21\u5F0F
|
|
23
|
+
vite-mp --cwd example # \u5728example\u76EE\u5F55\u8FD0\u884C
|
|
24
|
+
vite-mp --mode production --debug # \u4F20\u9012\u989D\u5916\u53C2\u6570\u7ED9vite
|
|
25
|
+
`),process.exit(0)):e!=="build"&&h.push(e)}return{viteBuildArgs:h,debug:t,cwd:l,strategies:u,concurrency:m,flatten:d}}async function T(){let{loadUserConfig:c,hasCustomConfig:h}=await import("./config-loader-5G3KL6TE.mjs"),{mergeWithDefaults:t}=await import("./defaults-A5TQPXKR.mjs"),l=null;return h()&&(l=await c({mode:"production",command:"build",isCLI:!0}),l||console.log("\u274C \u914D\u7F6E\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25")),t(l)}function A(c,h,t){return new Promise(l=>{let u=t?console.log.bind(console,`[${c}]`):()=>{},m={...process.env,VITE_MULTI_PAGE_STRATEGY:c},d=["build",...h],a=D("npx",["vite",...d],{stdio:t?"inherit":"pipe",env:m,cwd:process.cwd(),shell:process.platform==="win32"}),e="";t||a.stderr?.on("data",o=>{e+=o.toString()}),a.on("close",o=>{let f=o===0,r=i.resolve(process.cwd(),"dist",c);if(f)try{if(s.existsSync(r)){let p=s.readdirSync(r);for(let g of p)if(g.startsWith(".temp.mp.")&&g.endsWith(".html")){let n=i.resolve(r,g),v=`${g.replace(/^\.temp\.mp\./,"").replace(/\.html$/,"")}.html`,$=i.resolve(r,v);s.renameSync(n,$)}}}catch(p){u("\u91CD\u547D\u540DHTML\u6587\u4EF6\u5931\u8D25:",p)}else!t&&e&&console.error(`\u7B56\u7565 ${c} \u9519\u8BEF\u8F93\u51FA:`,e);l({strategy:c,success:f,error:f?void 0:e||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${o}`,outputDir:r})}),a.on("error",o=>{u(`\u274C \u7B56\u7565 ${c} \u6784\u5EFA\u51FA\u9519:`,o.message);let f=x(h);l({strategy:c,success:!1,error:o.message,outputDir:f})})})}async function E(c){let h=S.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let t of h){let l=i.resolve(process.cwd(),t);try{s.unlinkSync(l)}catch{}}}async function N(c,h){let t=h?console.log.bind(console,"[flatten]"):()=>{},l=i.resolve(process.cwd(),"dist");if(!s.existsSync(l))return;t("\u5F00\u59CB\u6241\u5E73\u5316\u8F93\u51FA\u7ED3\u6784...");let u=[];for(let e of c){let o=i.resolve(l,e);if(s.existsSync(o)){let f=s.readdirSync(o);for(let r of f)if(r.endsWith(".html")){let p=i.resolve(o,r),g=i.resolve(l,r),n=s.existsSync(g)?i.resolve(l,`${e}-${r}`):g;s.renameSync(p,n),u.push(i.basename(n)),t(`\u79FB\u52A8HTML: ${e}/${r} -> ${i.basename(n)}`)}}}let m=i.resolve(l,"assets");if(s.existsSync(m)){let e=i.resolve(l,"assets-backup");s.existsSync(e)&&s.rmSync(e,{recursive:!0}),s.renameSync(m,e)}s.mkdirSync(m,{recursive:!0});let d=new Set;for(let e of c){let o=i.resolve(l,e);if(s.existsSync(o)){let f=i.resolve(o,"assets");if(s.existsSync(f)){let r=s.readdirSync(f);for(let p of r){let g=i.resolve(f,p),n=i.resolve(m,p);if(!d.has(p))s.renameSync(g,n),d.add(p),t(`\u79FB\u52A8\u8D44\u6E90: ${e}/assets/${p} -> assets/${p}`);else{let y=s.readFileSync(g),v=s.readFileSync(n);if(y.equals(v))s.unlinkSync(g),t(`\u5220\u9664\u91CD\u590D\u8D44\u6E90: ${e}/assets/${p} (\u5185\u5BB9\u76F8\u540C)`);else{let $=i.parse(p).name,b=i.parse(p).ext,w=`${$}-${e}${b}`,P=i.resolve(m,w);s.renameSync(g,P),t(`\u79FB\u52A8\u8D44\u6E90: ${e}/assets/${p} -> assets/${w} (\u5185\u5BB9\u4E0D\u540C)`)}}}}}}let a=new Set;for(let e of c){let o=i.resolve(l,e);if(s.existsSync(o)){let f=s.readdirSync(o);for(let r of f)if(!r.endsWith(".html")&&r!=="assets"){let p=i.resolve(o,r),g=i.resolve(l,r);s.statSync(p).isDirectory()?a.has(r)?(s.rmSync(p,{recursive:!0}),t(`\u5220\u9664\u91CD\u590D\u76EE\u5F55: ${e}/${r}`)):(s.existsSync(g)&&s.rmSync(g,{recursive:!0}),s.renameSync(p,g),a.add(r),t(`\u79FB\u52A8\u76EE\u5F55: ${e}/${r} -> ${r}`)):a.has(r)?(s.unlinkSync(p),t(`\u5220\u9664\u91CD\u590D\u6587\u4EF6: ${e}/${r}`)):(s.renameSync(p,g),a.add(r),t(`\u79FB\u52A8\u6587\u4EF6: ${e}/${r} -> ${r}`))}}}for(let e of u){let o=i.resolve(l,e);if(s.existsSync(o)){let f=s.readFileSync(o,"utf-8"),r="default";e==="mobile.html"?r="mobile":e==="tablet.html"?r="tablet":e.startsWith("mobile-")?r="mobile":e.startsWith("tablet-")&&(r="tablet");let p=i.resolve(l,"assets");if(s.existsSync(p)){let g=s.readdirSync(p);for(let n of g)if(n.includes(`-${r}`)){let v=n.replace(`-${r}`,"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),$=new RegExp(`\\./assets/${v}(?=\\s|>|"|')`,"g");f=f.replace($,`./assets/${n}`)}}s.writeFileSync(o,f),t(`\u66F4\u65B0\u8D44\u6E90\u8DEF\u5F84: ${e} -> assets/`)}}for(let e of c){let o=i.resolve(l,e);if(s.existsSync(o))try{s.rmSync(o,{recursive:!0}),t(`\u5220\u9664\u7B56\u7565\u76EE\u5F55: ${e}`)}catch(f){t(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u5931\u8D25: ${e}`,f)}}t("\u6241\u5E73\u5316\u5B8C\u6210")}async function O(c,h){let t=h?console.log.bind(console,"[cleanup]"):()=>{},l=S.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let u of l){let m=i.resolve(process.cwd(),u);try{s.unlinkSync(m)}catch(d){t(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${u}`,d)}}for(let u of c){let m=i.resolve(process.cwd(),"dist",u);if(s.existsSync(m)){let d=S.sync("*.mp.temp.html",{cwd:m});for(let a of d){let e=i.resolve(m,a);try{s.unlinkSync(e)}catch(o){t(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${u}/${a}`,o)}}}}}async function R(){let{viteBuildArgs:c,debug:h,cwd:t,strategies:l,concurrency:u,flatten:m}=C(),d=h?console.log.bind(console,"[main]"):()=>{};if(t){let a=i.resolve(process.cwd(),t);s.existsSync(a)||(console.error(`\u274C \u6307\u5B9A\u7684\u76EE\u5F55\u4E0D\u5B58\u5728: ${a}`),process.exit(1)),process.chdir(a),d(`\u5207\u6362\u5DE5\u4F5C\u76EE\u5F55\u5230: ${a}`)}try{let a=await T(),{cleanViteOutputDirectory:e}=await import("./build-config-TPFCXXIR.mjs");e(c),await W(a,c,h,l,u,m)}catch(a){console.error("\u274C \u6784\u5EFA\u5931\u8D25:",a instanceof Error?a.message:a),process.exit(1)}}async function W(c,h,t,l,u=3,m=!1){let d=t?console.log.bind(console,"[strategy-mode]"):()=>{},{getAvailableStrategies:a}=await import("./build-config-TPFCXXIR.mjs"),e=a({entry:c.entry||"src/pages/*/main.{ts,js}",exclude:c.exclude||[],template:c.template||"index.html",placeholder:c.placeholder||"{{ENTRY_FILE}}",pageConfigs:c.pageConfigs||{},strategies:c.strategies||{}});if(e.length===0)throw new Error("\u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565");let o;if(l&&l.length>0){let n=l.filter(y=>!e.includes(y));if(n.length>0)throw new Error(`\u6307\u5B9A\u7684\u7B56\u7565\u4E0D\u5B58\u5728: ${n.join(", ")}
|
|
26
|
+
\u53EF\u7528\u7B56\u7565: ${e.join(", ")}`);o=l}else o=e;d(`\u{1F680} \u5F00\u59CB\u6784\u5EFA\u7B56\u7565: ${o.join(", ")} (\u5E76\u53D1\u6570: ${u})`);let f=[];for(let n=0;n<o.length;n+=u){let y=o.slice(n,n+u),v=y.map(b=>A(b,h,t)),$=await Promise.all(v);f.push(...$),t&&d(`\u6279\u6B21 ${Math.floor(n/u)+1} \u5B8C\u6210: ${y.join(", ")}`)}let r=f.filter(n=>n.success).length;f.length-r>0&&(console.log(`
|
|
27
|
+
\u274C \u6784\u5EFA\u5931\u8D25:`),f.filter(n=>!n.success).forEach(n=>{console.log(` - ${n.strategy}: ${n.error}`)}),await E(t),process.exit(1)),m&&await N(o,t),await O(o,t);let g=f.filter(n=>n.success);if(console.log(`
|
|
28
|
+
\u{1F389} \u6784\u5EFA\u6210\u529F\uFF01`),console.log(`\u{1F4E6} \u7B56\u7565: ${g.map(n=>n.strategy).join(", ")}`),m){console.log("\u{1F4C1} \u8F93\u51FA\u7ED3\u6784: \u6241\u5E73\u5316");let n=i.resolve(process.cwd(),"dist");if(s.existsSync(n)){let y=s.readdirSync(n).filter(v=>v.endsWith(".html"));console.log(` - HTML\u6587\u4EF6: ${y.join(", ")}`)}}else for(let n of g){let y=i.resolve(process.cwd(),"dist",n.strategy);if(s.existsSync(y)){let v=s.readdirSync(y).filter($=>$.endsWith(".html"));console.log(` - ${n.strategy}: ${v.join(", ")}`)}}}var j=F(import.meta.url);j===i.resolve(process.argv[1])&&R().catch(c=>{console.error("\u274C \u672A\u5904\u7406\u7684\u9519\u8BEF:",c),process.exit(1)});export{R as buildAll};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import*as i from"fs";import*as r from"path";import{pathToFileURL as f}from"url";import{createJiti as u}from"jiti";var c=["multipage.config.ts","multipage.config.js","multipage.config.mjs"];function d(){for(let o of c){let t=r.resolve(process.cwd(),o);if(i.existsSync(t))return!0}return!1}async function y(o){let t=await l();if(t){let n=t(o);return n||{}}return null}async function a(o){if(o.endsWith(".ts"))return u(import.meta.url,{interopDefault:!0}).import(o);if(o.endsWith(".js")||o.endsWith(".mjs"))return import(`${f(o).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${o}`)}async function l(){let o=process.cwd();for(let t of c){let n=r.resolve(o,t);if(i.existsSync(n))try{let e=await a(n),s=e.default||e;if(typeof s=="function")return s;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${t} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(e){console.error(`\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6 ${t} \u5931\u8D25:`,e)}}return null}export{d as hasCustomConfig,y as loadUserConfig};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
var t={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,strategies:{default:{}},pageConfigs:{}};function p(e){if(!e)return{...t};let a=e.strategies??e.buildStrategies??t.strategies;return{entry:e.entry??t.entry,exclude:e.exclude??t.exclude,template:e.template??t.template,placeholder:e.placeholder??t.placeholder,debug:e.debug??t.debug,strategies:a,pageConfigs:e.pageConfigs??t.pageConfigs,__forceBuildStrategy:e.__forceBuildStrategy}}function g(e){if(Object.keys(e).length===0)return!0;let a=e.entry&&e.entry!==t.entry,l=e.strategies&&Object.keys(e.strategies).length>0||e.buildStrategies&&Object.keys(e.buildStrategies).length>0,s=e.pageConfigs&&(typeof e.pageConfigs=="function"||Object.keys(e.pageConfigs).length>0);return!a&&!l&&!s}export{t as DEFAULT_CONFIG,g as isEmptyConfig,p as mergeWithDefaults};
|
package/dist/index.d.ts
CHANGED
|
@@ -21,8 +21,7 @@ interface BuildConfigOptions {
|
|
|
21
21
|
pageConfigs?: Record<string, PageConfig> | PageConfigFunction;
|
|
22
22
|
forceBuildStrategy?: string;
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
}
|
|
24
|
+
type ConfigStrategy = Omit<UserConfig, 'plugins'>;
|
|
26
25
|
interface PageConfig {
|
|
27
26
|
strategy?: string;
|
|
28
27
|
define?: Record<string, any>;
|
|
@@ -53,7 +52,7 @@ declare function defineConfigTransform(transform: ConfigTransformFunction): Conf
|
|
|
53
52
|
* 构建时配置生成器
|
|
54
53
|
* 根据策略和页面配置生成多页面构建配置
|
|
55
54
|
*/
|
|
56
|
-
declare function generateBuildConfig(options: BuildConfigOptions): Record<string, UserConfig
|
|
55
|
+
declare function generateBuildConfig(options: BuildConfigOptions): Promise<Record<string, UserConfig>>;
|
|
57
56
|
/**
|
|
58
57
|
* 获取Vite配置的输出目录
|
|
59
58
|
* 需要传入已解析的Vite配置或命令行参数
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`);
|
|
3
|
-
${
|
|
1
|
+
"use strict";var ae=Object.create;var j=Object.defineProperty;var ge=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var ce=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty;var fe=(t,e)=>{for(var r in e)j(t,r,{get:e[r],enumerable:!0})},z=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of le(e))!pe.call(t,i)&&i!==r&&j(t,i,{get:()=>e[i],enumerable:!(o=ge(e,i))||o.enumerable});return t};var w=(t,e,r)=>(r=t!=null?ae(ce(t)):{},z(e||!t||!t.__esModule?j(r,"default",{value:t,enumerable:!0}):r,t)),de=t=>z(j({},"__esModule",{value:!0}),t);var Pe={};fe(Pe,{cleanViteOutputDirectory:()=>X,default:()=>be,defineConfig:()=>ie,defineConfigTransform:()=>re,generateBuildConfig:()=>D,getAvailableStrategies:()=>Z,getViteOutputDirectory:()=>k,mergeWithDefaults:()=>_,viteMultiPage:()=>se});module.exports=de(Pe);var ue=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href,x=ue();var oe=require("vite");var b=w(require("path")),E=w(require("fs")),q=require("glob");var S=w(require("path"));function F(t,e,r,o){let i=[],l=new Map,g=e.replace(/\/\*.*$/,"");(!g||g===e)&&(g=S.dirname(e.split("*")[0]));let s=[];for(let n of t){if(r.includes(n))continue;let a=n.replace(/\\/g,"/"),c=g.replace(/\\/g,"/"),u=S.posix.relative(c,a).split("/");if(u.length===1){let p=u[0],m=S.posix.basename(p,S.posix.extname(p));s.push({name:m,file:n,priority:1})}else if(u.length>=2){let p=S.posix.basename(a,S.posix.extname(a)),m=u[0];p==="main"&&s.push({name:m,file:n,priority:2})}}for(let n of s){let a=l.get(n.name);a?n.priority>a.priority&&l.set(n.name,{file:n.file,priority:n.priority}):l.set(n.name,{file:n.file,priority:n.priority})}for(let[n,{file:a}]of l.entries())i.push({name:n,file:a});return i}function J(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function R(t){return(...e)=>{t&&console.log("[vite-plugin-multi-page]",...e)}}function O(t,e,r){if(!t)return null;if(typeof t=="function")return t(e);for(let[o,i]of Object.entries(t)){if(o===e.pageName)return r(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${e.pageName}:`,i),i;if(i.match&&(Array.isArray(i.match)?i.match:[i.match]).some(s=>I(s,e.pageName)||I(s,e.relativePath)||I(s,e.filePath)))return r(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${i.match}):`,i),{...i,match:void 0};if(I(o,e.pageName))return r(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${o}):`,i),i}return null}function I(t,e){let r=t.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${r}$`).test(e)}function me(t,e,r){try{let o=q.glob.sync(e.entry,{cwd:process.cwd()}),i=F(o,e.entry,e.exclude,r);if(i.length===0){r("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6");return}let l=e.devStrategy||t.config.__cliStrategy||t.config.strategy;l&&(r(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${l}`),i=i.filter(g=>{let s={pageName:g.name,filePath:g.file,relativePath:b.relative(process.cwd(),g.file),strategy:void 0,isMatched:!1},a=O(e.pageConfigs,s,r)?.strategy||"default";return l==="default"?a==="default":a===l}),r(`\u7B56\u7565 "${l}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${i.map(g=>g.name).join(", ")||"\u65E0"}`)),r("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",i),t.middlewares.use(async(g,s,n)=>{try{let c=(g.url||"").split("?")[0];if(c==="/"){let p=he(i,e,r);s.statusCode=200,s.setHeader("Content-Type","text/html"),s.end(p);return}if(c.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!c.endsWith(".html")||c.startsWith("/@")||c.includes("__vite")||c.startsWith("/node_modules"))return n();let d="";if(c.endsWith(".html"))d=b.basename(c,".html");else if(c.startsWith("/")){let p=c.substring(1);if(i.find(m=>m.name===p))d=p;else{let m=p.split("/");if(m.length>1){let f=m[0];i.find(y=>y.name===f)&&(d=f,r(`History \u8DEF\u7531\u5339\u914D: ${c} -> ${f}`))}}}if(!d)return n();let u=i.find(p=>p.name===d);return u?ye(s,u,e,r):n()}catch(a){r(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${a}`),n(a)}}),r("\u5F00\u53D1\u670D\u52A1\u5668\u914D\u7F6E\u5B8C\u6210")}catch(o){throw r(`\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668\u5931\u8D25: ${o}`),o}}function ye(t,e,r,o){let i={pageName:e.name,filePath:e.file,relativePath:b.relative(process.cwd(),e.file),strategy:void 0,isMatched:!1},l=O(r.pageConfigs,i,o);if(l?.strategy)i.strategy=l.strategy;else if(r.appliedStrategies?.has(e.name)){let c=r.appliedStrategies.get(e.name);c&&(i.strategy=c)}let g="",s=b.resolve(process.cwd(),`${e.name}.html`);if(E.existsSync(s)?g=s:l?.template?g=b.resolve(process.cwd(),l.template):g=b.resolve(process.cwd(),r.template),!E.existsSync(g)){t.statusCode=404,t.end("Template not found");return}let n=E.readFileSync(g,"utf-8");if(n.includes(r.placeholder)){let c=n;if(n=n.split(r.placeholder).join(`/${e.file}`),n===c){let d=J(r.placeholder),u=new RegExp(d,"g");n=c.replace(u,`/${e.file}`),n===c&&(n=c.replace(/\{\{ENTRY_FILE\}\}/g,`/${e.file}`))}}if(l?.define){let c=Object.entries(l.define).map(([d,u])=>{let p=typeof u=="string"?`"${u}"`:JSON.stringify(u);return`window.${d} = ${p};`}).join(`
|
|
2
|
+
`);c&&(n=n.replace(/<\/head>/i,`<script type="text/javascript">
|
|
3
|
+
${c}
|
|
4
4
|
</script>
|
|
5
|
-
</head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(
|
|
5
|
+
</head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(n)}var Q=me;function he(t,e,r){try{let o=t.map(i=>{let l={pageName:i.name,filePath:i.file,relativePath:b.relative(process.cwd(),i.file),strategy:void 0,isMatched:!1},g=O(e.pageConfigs,l,r),s="default";if(g?.strategy)s=g.strategy;else if(e.appliedStrategies?.has(i.name)){let a=e.appliedStrategies.get(i.name);a&&(s=a)}let n=s!=="default"?`<span class="badge">${s}</span>`:"";return`
|
|
6
6
|
<div class="page-item">
|
|
7
|
-
<a href="${
|
|
8
|
-
${
|
|
7
|
+
<a href="${i.name}.html" class="page-link">
|
|
8
|
+
${i.name}${n}
|
|
9
9
|
</a>
|
|
10
|
-
<div class="page-path">${
|
|
10
|
+
<div class="page-path">${i.file}</div>
|
|
11
11
|
</div>`}).join("");return`
|
|
12
12
|
<!DOCTYPE html>
|
|
13
13
|
<html lang="en">
|
|
@@ -83,11 +83,11 @@ ${p}
|
|
|
83
83
|
\u627E\u5230 ${t.length} \u4E2A\u9875\u9762
|
|
84
84
|
</div>
|
|
85
85
|
<div class="page-list">
|
|
86
|
-
${
|
|
86
|
+
${o}
|
|
87
87
|
</div>
|
|
88
88
|
</body>
|
|
89
89
|
</html>
|
|
90
|
-
`}catch(
|
|
90
|
+
`}catch(o){return r(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${o}`),`
|
|
91
91
|
<!DOCTYPE html>
|
|
92
92
|
<html>
|
|
93
93
|
<head>
|
|
@@ -95,13 +95,10 @@ ${p}
|
|
|
95
95
|
</head>
|
|
96
96
|
<body>
|
|
97
97
|
<h1>\u751F\u6210\u7D22\u5F15\u9875\u65F6\u53D1\u751F\u9519\u8BEF</h1>
|
|
98
|
-
<p>${
|
|
98
|
+
<p>${o}</p>
|
|
99
99
|
</body>
|
|
100
100
|
</html>
|
|
101
|
-
`}}var K=require("vite"),
|
|
102
|
-
\u274C \u65E0\u6CD5\u52A0\u8F7D TypeScript \u914D\u7F6E\u6587\u4EF6\uFF0C\u56E0\u4E3A\u627E\u4E0D\u5230 esbuild \u4F9D\u8D56\u3002`),console.error(`
|
|
103
|
-
\u{1F4A1} \u8BF7\u9009\u62E9\u4EE5\u4E0B\u89E3\u51B3\u65B9\u6848\u4E4B\u4E00\uFF1A`),console.error(' 1. \u5B89\u88C5 esbuild (peerDependency)\uFF1Anpm install esbuild@">=0.19.3" --save-dev'),console.error(" 2. \u6216\u8005\u5982\u679C\u4F7F\u7528 Vite \u9879\u76EE\uFF0Cesbuild \u901A\u5E38\u5DF2\u5B89\u88C5\uFF0C\u8BF7\u68C0\u67E5\u7248\u672C\u662F\u5426 >=0.19.3"),console.error(" 3. \u4F7F\u7528 JavaScript \u914D\u7F6E\u6587\u4EF6\uFF1A\u5C06 multipage.config.ts \u91CD\u547D\u540D\u4E3A multipage.config.js"),console.error(` 4. \u4F7F\u7528 ESM \u914D\u7F6E\u6587\u4EF6\uFF1A\u5C06 multipage.config.ts \u91CD\u547D\u540D\u4E3A multipage.config.mjs
|
|
104
|
-
`),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${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
|
|
101
|
+
`}}var K=require("vite"),A=require("glob"),h=w(require("path")),P=w(require("fs"));async function D(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:r=[],template:o="index.html",placeholder:i="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:l={},pageConfigs:g={},forceBuildStrategy:s}=t,n=R(!0),a={};try{let c=A.glob.sync(e,{cwd:process.cwd()}),d=F(c,e,r,n);if(d.length===0)return n("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let u=new Map,p=new Map;for(let f of d){let y={pageName:f.name,filePath:f.file,relativePath:h.relative(process.cwd(),f.file)},C=O(g,y,n)?.strategy||"default";u.set(f.name,C),p.has(C)||p.set(C,[]),p.get(C)?.push(f.name)}if(n(`\u{1F4C4} \u53D1\u73B0 ${d.length} \u4E2A\u9875\u9762: ${d.map(f=>f.name).join(", ")}`),s){let f=p.get(s)||[];if(f.length===0)return n(`\u8B66\u544A: \u7B56\u7565 "${s}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};n(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${s}, \u9875\u9762: ${f.join(", ")}`);let y=await L(s,f,d,l[s],g,o,i,n);return a[s]=y,a}for(let[f,y]of p){if(y.length===0)continue;let v=l[f]||{},C=await L(f,y,d,v,g,o,i,n);a[f]=C}if(Object.keys(a).length===0){n("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let f=d.map(v=>v.name),y=await L("default",f,d,{},g,o,i,n);a.default=y}let m=Object.keys(a);return n(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${m.join(", ")}`),a}catch(c){throw n("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",c),c}}async function L(t,e,r,o,i,l,g,s){let n={},a=[],c={};for(let m of e){let f=r.find(U=>U.name===m);if(!f)continue;let y={pageName:m,filePath:f.file,relativePath:h.relative(process.cwd(),f.file),strategy:t},v=O(i,y,s);v?.define&&Object.assign(c,v.define);let C=l,Y=`${m}.html`;P.existsSync(h.resolve(process.cwd(),Y))?C=Y:v?.template&&(C=v.template);let H=h.resolve(process.cwd(),C);if(!P.existsSync(H)){s(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${C}`);continue}let T=P.readFileSync(H,"utf-8");if(T.includes(g)){let U=`./${f.file}`;T=T.replace(new RegExp(g.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),U)}let N=h.resolve(process.cwd(),`.temp.mp.${m}.html`);P.writeFileSync(N,T),a.push(N),n[m]=N}let d={input:n,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},u={base:"./",build:{outDir:`dist/${t}`,rollupOptions:d,rolldownOptions:d,emptyOutDir:!1},define:{}},p=u;return o&&(p=(0,K.mergeConfig)(u,o)),Object.keys(c).length>0&&(p.define={...p.define,...c}),p.build||(p.build={}),p.build.rollupOptions||(p.build.rollupOptions={}),p.build.rolldownOptions||(p.build.rolldownOptions={}),p.build.rollupOptions.input=n,p.build.rolldownOptions.input=n,p.build.emptyOutDir=!1,s(`\u7B56\u7565 "${t}" - ${e.length} \u4E2A\u9875\u9762`),p}function k(t=[]){let e=t.findIndex(o=>o==="--outDir");if(e!==-1&&e+1<t.length){let o=t[e+1];return h.resolve(process.cwd(),o)}let r=t.find(o=>o.startsWith("--outDir="));if(r){let o=r.split("=")[1];return h.resolve(process.cwd(),o)}return h.resolve(process.cwd(),"dist")}function X(t=[]){let e=k(t),r=R(!0);try{P.existsSync(e)&&(P.rmSync(e,{recursive:!0,force:!0}),r(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${h.relative(process.cwd(),e)}`))}catch(o){r(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,o)}}function Z(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:r=[],pageConfigs:o={}}=t,i=R(!1),l=new Set,g=A.glob.sync(e,{cwd:process.cwd()}),s=F(g,e,r,i);if(s.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let n of s){let a={pageName:n.name,filePath:n.file,relativePath:h.relative(process.cwd(),n.file)},d=O(o,a,i)?.strategy||"default";l.add(d)}return Array.from(l).sort()}catch(n){return i("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",n),["default"]}}var B=w(require("fs")),V=w(require("path")),ee=require("url"),te=require("jiti"),ne=["multipage.config.ts","multipage.config.js","multipage.config.mjs"];function G(){for(let t of ne){let e=V.resolve(process.cwd(),t);if(B.existsSync(e))return!0}return!1}async function W(t){let e=await xe();if(e){let r=e(t);return r||{}}return null}async function Ce(t){if(t.endsWith(".ts"))return(0,te.createJiti)(x,{interopDefault:!0}).import(t);if(t.endsWith(".js")||t.endsWith(".mjs"))return import(`${(0,ee.pathToFileURL)(t).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${t}`)}async function xe(){let t=process.cwd();for(let e of ne){let r=V.resolve(t,e);if(B.existsSync(r))try{let o=await Ce(r),i=o.default||o;if(typeof i=="function")return i;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${e} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(o){console.error(`\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,o)}}return null}var $={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,strategies:{default:{}},pageConfigs:{}};function _(t){if(!t)return{...$};let e=t.strategies??t.buildStrategies??$.strategies;return{entry:t.entry??$.entry,exclude:t.exclude??$.exclude,template:t.template??$.template,placeholder:t.placeholder??$.placeholder,debug:t.debug??$.debug,strategies:e,pageConfigs:t.pageConfigs??$.pageConfigs,__forceBuildStrategy:t.__forceBuildStrategy}}var M=w(require("fs"));function ie(t){return typeof t=="function"?t:()=>t}function re(t){return t}function se(t){let e,r=[],o=()=>{};return{name:"vite-multi-page",async configResolved(i){let l=null;G()&&(l=await W({mode:i.command==="serve"?"development":"production",command:i.command,isCLI:!1}));let g=_(l);e=t?t(g,{mode:i.command==="serve"?"development":"production",command:i.command,isCLI:!1}):g,o=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{},o("Vite\u914D\u7F6E\u5DF2\u89E3\u6790, \u4F7F\u7528\u914D\u7F6E:",{strategies:Object.keys(e.strategies||{}),entry:e.entry})},async config(i,{command:l}){if(l==="serve"){let g=process.argv,s=g.find(n=>n.startsWith("--strategy="));if(s){let n=s.split("=")[1];n&&(process.env.VITE_MULTI_PAGE_STRATEGY=n)}else{let n=g.findIndex(a=>a==="--strategy");if(n!==-1&&n+1<g.length){let a=g[n+1];process.env.VITE_MULTI_PAGE_STRATEGY=a}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(l==="build"){if(!e){let a=null;G()&&(a=await W({mode:"production",command:"build",isCLI:!1}));let c=_(a);e=t?t(c,{mode:"production",command:"build",isCLI:!1}):c,o=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{}}o("\u914D\u7F6E\u6784\u5EFA\u6A21\u5F0F");let g=process.env.VITE_MULTI_PAGE_STRATEGY,s=await D({entry:e.entry||"src/pages/**/*.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",strategies:e.strategies||{},pageConfigs:e.pageConfigs||{},forceBuildStrategy:g}),n=Object.keys(s)[0];if(n&&s[n]){o(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${n}`);let a=s[n],c=(0,oe.mergeConfig)(i,a);Object.assign(i,c),o(`\u5DF2\u5E94\u7528\u7B56\u7565 "${n}" \u7684\u914D\u7F6E:`,{build:!!a.build,define:!!a.define,plugins:a.plugins?.length||0})}else throw o("\u672A\u627E\u5230\u53EF\u7528\u7684\u6784\u5EFA\u7B56\u7565\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u914D\u7F6E"),new Error(`\u274C \u6784\u5EFA\u5931\u8D25: \u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565
|
|
105
102
|
|
|
106
103
|
\u53EF\u80FD\u7684\u539F\u56E0\uFF1A
|
|
107
104
|
1. \u914D\u7F6E\u6587\u4EF6\u8FD4\u56DE\u7A7A\u5BF9\u8C61 {}
|
|
@@ -116,5 +113,5 @@ export default () => ({
|
|
|
116
113
|
strategies: {
|
|
117
114
|
default: {}
|
|
118
115
|
}
|
|
119
|
-
});`)}},configureServer(
|
|
116
|
+
});`)}},configureServer(i){if(i.config.command==="serve"){o("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let l=process.env.VITE_MULTI_PAGE_STRATEGY||"default";o(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${l}`),Q(i,{entry:e.entry||"src/pages/**/*.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",strategies:e.strategies||{},pageConfigs:e.pageConfigs||{},devStrategy:l},o)}},writeBundle(){},buildEnd(){r.length>0&&(o(`\u6E05\u7406 ${r.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),r.forEach(i=>{try{M.existsSync(i)&&(M.unlinkSync(i),o(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${i}`))}catch(l){o(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${i}`,l)}}),r.length=0)}}}var be=se;0&&(module.exports={cleanViteOutputDirectory,defineConfig,defineConfigTransform,generateBuildConfig,getAvailableStrategies,getViteOutputDirectory,mergeWithDefaults,viteMultiPage});
|
|
120
117
|
//# sourceMappingURL=index.js.map
|