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