@fchc8/vite-plugin-multi-page 1.9.4 → 1.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +11 -11
- package/dist/index.js +11 -11
- 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/cli.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var _e=Object.create;var Y=Object.defineProperty;var je=Object.getOwnPropertyDescriptor;var De=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,
|
|
2
|
+
"use strict";var _e=Object.create;var Y=Object.defineProperty;var je=Object.getOwnPropertyDescriptor;var De=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Ne=Object.prototype.hasOwnProperty;var O=(t,e)=>()=>(t&&(e=t(t=0)),e);var B=(t,e)=>{for(var i in e)Y(t,i,{get:e[i],enumerable:!0})},le=(t,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of De(e))!Ne.call(t,n)&&n!==i&&Y(t,n,{get:()=>e[n],enumerable:!(s=je(e,n))||s.enumerable});return t};var F=(t,e,i)=>(i=t!=null?_e(Re(t)):{},le(e||!t||!t.__esModule?Y(i,"default",{value:t,enumerable:!0}):i,t)),Le=t=>le(Y({},"__esModule",{value:!0}),t);var S=O(()=>{"use strict"});function V(t,e,i,s){let n=[],c=new Map,l=e.replace(/\/\*.*$/,"");(!l||l===e)&&(l=D.dirname(e.split("*")[0]));let g=[];for(let o of t){if(i.includes(o))continue;let m=o.replace(/\\/g,"/"),d=l.replace(/\\/g,"/"),u=D.posix.relative(d,m).split("/");if(u.length===1){let r=u[0],f=D.posix.basename(r,D.posix.extname(r));g.push({name:f,file:o,priority:1})}else if(u.length>=2){let r=D.posix.basename(m,D.posix.extname(m)),f=u[0];r==="main"&&g.push({name:f,file:o,priority:2})}}for(let o of g){let m=c.get(o.name);m?o.priority>m.priority&&c.set(o.name,{file:o.file,priority:o.priority}):c.set(o.name,{file:o.file,priority:o.priority})}for(let[o,{file:m}]of c.entries())n.push({name:o,file:m});return n}var D,ee=O(()=>{"use strict";S();D=F(require("path"))});function R(t,e,i){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 i(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${e.pageName}:`,n),n;if(n.match&&(Array.isArray(n.match)?n.match:[n.match]).some(g=>z(g,e.pageName)||z(g,e.relativePath)||z(g,e.filePath)))return i(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${n.match}):`,n),{...n,match:void 0};if(z(s,e.pageName))return i(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${s}):`,n),n}return null}function z(t,e){let i=t.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${i}$`).test(e)}var te=O(()=>{"use strict";S()});function pe(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function q(t){return(...e)=>{t&&console.log("[vite-plugin-multi-page]",...e)}}var se=O(()=>{"use strict";S()});var ae={};B(ae,{cleanViteOutputDirectory:()=>ie,generateBuildConfig:()=>k,getAvailableStrategies:()=>oe,getViteOutputDirectory:()=>L});function k(t){var d;let{entry:e="src/pages/*/main.{ts,js}",exclude:i=[],template:s="index.html",placeholder:n="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:c={},pageConfigs:l={},forceBuildStrategy:g}=t,o=q(!0),m={};try{let a=re.glob.sync(e,{cwd:process.cwd()}),u=V(a,e,i,o);if(u.length===0)return o("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let r=new Map,f=new Map;for(let p of u){let y={pageName:p.name,filePath:p.file,relativePath:E.relative(process.cwd(),p.file)},b=R(l,y,o),w=(b==null?void 0:b.strategy)||"default";r.set(p.name,w),f.has(w)||f.set(w,[]),(d=f.get(w))==null||d.push(p.name)}if(o(`\u{1F4C4} \u53D1\u73B0 ${u.length} \u4E2A\u9875\u9762: ${u.map(p=>p.name).join(", ")}`),g){let p=f.get(g)||[];if(p.length===0)return o(`\u8B66\u544A: \u7B56\u7565 "${g}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};o(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${g}, \u9875\u9762: ${p.join(", ")}`);let y=ne(g,p,u,c[g],l,s,n,o);return m[g]=y,m}for(let[p,y]of f){if(y.length===0)continue;let b=c[p]||{},w=ne(p,y,u,b,l,s,n,o);m[p]=w}if(Object.keys(m).length===0){o("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let p=u.map(b=>b.name),y=ne("default",p,u,{},l,s,n,o);m.default=y}let x=Object.keys(m);return o(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${x.join(", ")}`),m}catch(a){throw o("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",a),a}}function ne(t,e,i,s,n,c,l,g){let o={},m=[],d={};for(let r of e){let f=i.find(Z=>Z.name===r);if(!f)continue;let x={pageName:r,filePath:f.file,relativePath:E.relative(process.cwd(),f.file),strategy:t},p=R(n,x,g);p!=null&&p.define&&Object.assign(d,p.define);let y=c,b=`${r}.html`;M.existsSync(E.resolve(process.cwd(),b))?y=b:p!=null&&p.template&&(y=p.template);let w=E.resolve(process.cwd(),y);if(!M.existsSync(w)){g(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${y}`);continue}let P=M.readFileSync(w,"utf-8");if(P.includes(l)){let Z=`./${f.file}`;P=P.replace(new RegExp(l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),Z)}let W=E.resolve(process.cwd(),`.temp.mp.${r}.html`);M.writeFileSync(W,P),m.push(W),o[r]=W}let a={build:{rollupOptions:{input:o,output:{entryFileNames:r=>{let f=e.find(x=>r.name===x);return f?`assets/mp${f}-[name]-[hash].js`:"assets/[name]-[hash].js"},chunkFileNames:r=>{var x;if(r.facadeModuleId)for(let p of e){let y=i.find(b=>b.name===p);if(y&&r.facadeModuleId.includes(y.file.replace(/\\/g,"/")))return`assets/mp${p}-[name]-[hash].js`;if(r.facadeModuleId.includes(`/pages/${p}/`)||r.facadeModuleId.includes(`\\pages\\${p}\\`))return`assets/mp${p}-[name]-[hash].js`}if(r.moduleIds){for(let p of r.moduleIds)for(let y of e)if(p.includes(`/pages/${y}/`)||p.includes(`\\pages\\${y}\\`))return`assets/mp${y}-[name]-[hash].js`}let f=r.name||"";if(f.includes("lodash")||f.includes("vendor")||!r.facadeModuleId||r.facadeModuleId.includes("node_modules")){let p=[...r.moduleIds||[]];r.facadeModuleId&&p.push(r.facadeModuleId);for(let y of e)for(let b of p)if(b.includes(`/pages/${y}/`)||b.includes(`\\pages\\${y}\\`))return`assets/mp${y}-[name]-[hash].js`;for(let y of e)if(f.toLowerCase().includes(y.toLowerCase()))return`assets/mp${y}-[name]-[hash].js`;if(e.includes("spa")&&(f.includes("lodash")||f.includes("vendor")||(x=r.facadeModuleId)!=null&&x.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))return`assets/mp${f}-[name]-[hash][extname]`;if(r.source&&typeof r.source=="string"){for(let f of e)if(r.source.includes(`pages/${f}/`))return`assets/mp${f}-[name]-[hash][extname]`}if(r.originalFileName){for(let f of e)if(r.originalFileName.includes(`/pages/${f}/`)||r.originalFileName.includes(`\\pages\\${f}\\`))return`assets/mp${f}-[name]-[hash][extname]`}if(r.name==="ttt"||r.name==="test-styles"||r.name.startsWith("test-styles")){let f=Object.keys(o);for(let x of e)if(f.some(p=>p===x)){if(r.name==="ttt"&&x==="mobile")return`assets/mp${x}-[name]-[hash][extname]`;if((r.name==="test-styles"||r.name.startsWith("test-styles"))&&(x==="mobile"||x==="home"))return`assets/mp${x}-[name]-[hash][extname]`}if(r.name==="ttt"||r.name==="test-styles"||r.name.startsWith("test-styles"))return"assets/mpmobile-[name]-[hash][extname]"}if(typeof r.source=="string"&&r.source.length>0){for(let f of e)if(r.source.includes(`${f}-`)||r.source.includes(`.${f}`)||r.source.includes(`/* ${f}`))return`assets/mp${f}-[name]-[hash][extname]`}}return"assets/[name]-[hash][extname]"}}},emptyOutDir:!1},define:{}},u=a;return s&&(u=(0,fe.mergeConfig)(a,s)),Object.keys(d).length>0&&(u.define={...u.define,...d}),u.build||(u.build={}),u.build.rollupOptions||(u.build.rollupOptions={}),u.build.rollupOptions.input=o,u.build.emptyOutDir=!1,g(`\u7B56\u7565 "${t}" - ${e.length} \u4E2A\u9875\u9762`),u}function L(t=[]){let e=t.findIndex(s=>s==="--outDir");if(e!==-1&&e+1<t.length){let s=t[e+1];return E.resolve(process.cwd(),s)}let i=t.find(s=>s.startsWith("--outDir="));if(i){let s=i.split("=")[1];return E.resolve(process.cwd(),s)}return E.resolve(process.cwd(),"dist")}function ie(t=[]){let e=L(t),i=q(!0);try{M.existsSync(e)&&(M.rmSync(e,{recursive:!0,force:!0}),i(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${E.relative(process.cwd(),e)}`))}catch(s){i(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,s)}}function oe(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:i=[],pageConfigs:s={}}=t,n=q(!1),c=new Set,l=re.glob.sync(e,{cwd:process.cwd()}),g=V(l,e,i,n);if(g.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let o of g){let m={pageName:o.name,filePath:o.file,relativePath:E.relative(process.cwd(),o.file)},d=R(s,m,n),a=(d==null?void 0:d.strategy)||"default";c.add(a)}return Array.from(c).sort()}catch(o){return n("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",o),["default"]}}var fe,re,E,M,A=O(()=>{"use strict";S();fe=require("vite"),re=require("glob"),E=F(require("path")),M=F(require("fs"));ee();te();se()});var ue={};B(ue,{hasCustomConfig:()=>J,loadUserConfig:()=>Q});function J(){for(let t of me){let e=N.resolve(process.cwd(),t);if(U.existsSync(e))return!0}return!1}async function Q(t){let e=await Ue();if(e){let i=e(t);return i||{}}return null}async function Ae(t){if(t.endsWith(".ts"))try{let e=await U.promises.readFile(t,"utf-8"),i;try{i=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: ${
|
|
5
|
+
`),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${N.basename(t)}`)}let s=await i.transform(e,{loader:"ts",format:"cjs",target:"node16",sourcemap:!1}),n=new H.Module(t);return n.filename=t,n.paths=H.Module._nodeModulePaths(N.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 U.promises.readFile(t,"utf-8")).replace(/export\s+default\s+/,"module.exports = ").replace(/import\s+.*?from\s+['"][^'"]*['"];?\s*/g,"").replace(/:\s*[^=,})\]]+/g,""),n=new H.Module(t);return n.filename=t,n.paths=H.Module._nodeModulePaths(N.dirname(t)),n._compile(s,t),n.exports}if(t.endsWith(".js")||t.endsWith(".mjs"))return import(`${(0,ge.pathToFileURL)(t).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${t}`)}async function Ue(){let t=process.cwd();for(let e of me){let i=N.resolve(t,e);if(U.existsSync(i))try{let s=await Ae(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 U,N,ge,H,me,ce=O(()=>{"use strict";S();U=F(require("fs")),N=F(require("path")),ge=require("url"),H=require("module"),me=["multipage.config.js","multipage.config.mjs","multipage.config.ts"]});var de={};B(de,{DEFAULT_CONFIG:()=>T,isEmptyConfig:()=>Ie,mergeWithDefaults:()=>I});function I(t){return t?{entry:t.entry??T.entry,exclude:t.exclude??T.exclude,template:t.template??T.template,placeholder:t.placeholder??T.placeholder,debug:t.debug??T.debug,merge:t.merge??T.merge,strategies:t.strategies??T.strategies,pageConfigs:t.pageConfigs??T.pageConfigs,__forceBuildStrategy:t.__forceBuildStrategy}:{...T}}function Ie(t){if(Object.keys(t).length===0)return!0;let e=t.entry&&t.entry!==T.entry,i=t.strategies&&Object.keys(t.strategies).length>0,s=t.pageConfigs&&(typeof t.pageConfigs=="function"||Object.keys(t.pageConfigs).length>0);return!e&&!i&&!s}var T,K=O(()=>{"use strict";S();T={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,merge:"all",strategies:{default:{}},pageConfigs:{}}});function We(t,e,i){try{let s=he.glob.sync(e.entry,{cwd:process.cwd()}),n=V(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 c=e.devStrategy||t.config.__cliStrategy||t.config.strategy;c&&(i(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${c}`),n=n.filter(l=>{let g={pageName:l.name,filePath:l.file,relativePath:_.relative(process.cwd(),l.file),strategy:void 0,isMatched:!1},o=R(e.pageConfigs,g,i),m=(o==null?void 0:o.strategy)||"default";return c==="default"?m==="default":m===c}),i(`\u7B56\u7565 "${c}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${n.map(l=>l.name).join(", ")||"\u65E0"}`)),i("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",n),t.middlewares.use(async(l,g,o)=>{try{let d=(l.url||"").split("?")[0];if(d==="/"){let r=Ve(n,e,i);g.statusCode=200,g.setHeader("Content-Type","text/html"),g.end(r);return}if(d.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!d.endsWith(".html")||d.startsWith("/@")||d.includes("__vite")||d.startsWith("/node_modules"))return o();let a="";if(d.endsWith(".html"))a=_.basename(d,".html");else if(d.startsWith("/")){let r=d.substring(1);if(n.find(f=>f.name===r))a=r;else{let f=r.split("/");if(f.length>1){let x=f[0];n.find(p=>p.name===x)&&(a=x,i(`History \u8DEF\u7531\u5339\u914D: ${d} -> ${x}`))}}}if(!a)return o();let u=n.find(r=>r.name===a);return u?Be(g,u,e,i):o()}catch(m){i(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${m}`),o(m)}}),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 Be(t,e,i,s){var d;let n={pageName:e.name,filePath:e.file,relativePath:_.relative(process.cwd(),e.file),strategy:void 0,isMatched:!1},c=R(i.pageConfigs,n,s);if(c!=null&&c.strategy)n.strategy=c.strategy;else if((d=i.appliedStrategies)!=null&&d.has(e.name)){let a=i.appliedStrategies.get(e.name);a&&(n.strategy=a)}let l="",g=_.resolve(process.cwd(),`${e.name}.html`);if(G.existsSync(g)?l=g:c!=null&&c.template?l=_.resolve(process.cwd(),c.template):l=_.resolve(process.cwd(),i.template),!G.existsSync(l)){t.statusCode=404,t.end("Template not found");return}let o=G.readFileSync(l,"utf-8");if(o.includes(i.placeholder)){let a=o;if(o=o.split(i.placeholder).join(`/${e.file}`),o===a){let u=pe(i.placeholder),r=new RegExp(u,"g");o=a.replace(r,`/${e.file}`),o===a&&(o=a.replace(/\{\{ENTRY_FILE\}\}/g,`/${e.file}`))}}if(c!=null&&c.define){let a=Object.entries(c.define).map(([u,r])=>{let f=typeof r=="string"?`"${r}"`:JSON.stringify(r);return`window.${u} = ${f};`}).join(`
|
|
6
6
|
`);a&&(o=o.replace(/<\/head>/i,`<script type="text/javascript">
|
|
7
7
|
${a}
|
|
8
8
|
</script>
|
|
9
|
-
</head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(o)}function Ve(t,e,
|
|
9
|
+
</head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(o)}function Ve(t,e,i){try{let s=t.map(n=>{var m;let c={pageName:n.name,filePath:n.file,relativePath:_.relative(process.cwd(),n.file),strategy:void 0,isMatched:!1},l=R(e.pageConfigs,c,i),g="default";if(l!=null&&l.strategy)g=l.strategy;else if((m=e.appliedStrategies)!=null&&m.has(n.name)){let d=e.appliedStrategies.get(n.name);d&&(g=d)}let o=g!=="default"?`<span class="badge">${g}</span>`:"";return`
|
|
10
10
|
<div class="page-item">
|
|
11
11
|
<a href="${n.name}.html" class="page-link">
|
|
12
12
|
${n.name}${o}
|
|
@@ -91,7 +91,7 @@ ${a}
|
|
|
91
91
|
</div>
|
|
92
92
|
</body>
|
|
93
93
|
</html>
|
|
94
|
-
`}catch(s){return
|
|
94
|
+
`}catch(s){return i(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${s}`),`
|
|
95
95
|
<!DOCTYPE html>
|
|
96
96
|
<html>
|
|
97
97
|
<head>
|
|
@@ -102,7 +102,7 @@ ${a}
|
|
|
102
102
|
<p>${s}</p>
|
|
103
103
|
</body>
|
|
104
104
|
</html>
|
|
105
|
-
`}}var _,G,he,ye,xe=O(()=>{"use strict";S();_=F(require("path")),G=F(require("fs")),he=require("glob");ee();se();te();ye=
|
|
105
|
+
`}}var _,G,he,ye,xe=O(()=>{"use strict";S();_=F(require("path")),G=F(require("fs")),he=require("glob");ee();se();te();ye=We});function ve(t){return typeof t=="function"?t:()=>t}function $e(t){return t}var be=O(()=>{"use strict";S()});var Fe={};B(Fe,{cleanViteOutputDirectory:()=>ie,default:()=>He,defineConfig:()=>ve,defineConfigTransform:()=>$e,generateBuildConfig:()=>k,getAvailableStrategies:()=>oe,getViteOutputDirectory:()=>L,mergeWithDefaults:()=>I,reorganizeAssetsInCLI:()=>ke,viteMultiPage:()=>Pe});function we(t,e,i,s){let n=$.resolve(t,"assets");if(!h.existsSync(n)){s("assets\u76EE\u5F55\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u91CD\u7EC4");return}let c=h.readdirSync(t).filter(a=>a.endsWith(".html")).map(a=>$.resolve(t,a));if(c.length===0){if(s("\u672A\u627E\u5230HTML\u6587\u4EF6\uFF0C\u4F46\u4ECD\u9700\u6E05\u7406assets\u76EE\u5F55"),(e==="strategy"||e==="page")&&h.existsSync(n))try{h.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 l=new Map,g=new Map;c.forEach(a=>{var w;let u=$.basename(a,".html");u.startsWith(".temp.mp.")&&(u=u.replace(".temp.mp.",""));let r=h.readFileSync(a,"utf-8"),f=[],x=/(?:src|href)="\/assets\/([^"]+)"/g,p;for(;(p=x.exec(r))!==null;){let P=p[1];f.push(P),g.has(P)||g.set(P,[]),(w=g.get(P))==null||w.push(u)}let y="";e==="strategy"?y="default":e==="page"&&(y=u);let b=$.resolve(t,y);l.set(u,{assets:f,targetDir:b}),s(`\u9875\u9762 ${u} \u4F9D\u8D56\u8D44\u6E90:`,f)}),s("\u7B2C\u4E00\u9636\u6BB5\u8865\u5145\uFF1A\u5206\u6790public\u76EE\u5F55\u8D44\u6E90");let o=new Set,m=$.resolve(process.cwd(),"public");if(h.existsSync(m)){let a=Se.sync("**/*",{cwd:m,nodir:!0});for(let u of a)o.add(u),s(`\u53D1\u73B0public\u8D44\u6E90: ${u}`)}g.forEach((a,u)=>{a.length>1?s(`\u5171\u4EAB\u8D44\u6E90 ${u} \u88AB\u9875\u9762\u4F7F\u7528:`,a):s(`\u72EC\u5360\u8D44\u6E90 ${u} \u4EC5\u88AB\u9875\u9762 ${a[0]} \u4F7F\u7528`)}),l.forEach(({assets:a,targetDir:u},r)=>{let f=$.resolve(u,"assets");if(h.existsSync(f)||h.mkdirSync(f,{recursive:!0}),a.forEach(x=>{let p=$.resolve(n,x),y=$.resolve(f,x);h.existsSync(p)?(h.copyFileSync(p,y),s(`\u590D\u5236\u8D44\u6E90\u6587\u4EF6\u5230 ${r}: assets/${x} -> ${$.relative(t,y)}`)):s(`\u8B66\u544A: \u8D44\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728: ${p}`)}),h.existsSync(n)){let x=h.readdirSync(n),p=`mp${r}-`;x.filter(b=>b.startsWith(p)).forEach(b=>{if(!a.includes(b)){let w=$.resolve(n,b),P=$.resolve(f,b);h.existsSync(w)&&(h.copyFileSync(w,P),s(`\u590D\u5236\u524D\u7F00\u5339\u914D\u7684\u8D44\u6E90\u6587\u4EF6\u5230 ${r}: assets/${b} -> ${$.relative(t,P)}`))}})}}),s("\u7B2C\u4E09\u9636\u6BB5\u8865\u5145\uFF1A\u5904\u7406public\u76EE\u5F55\u8D44\u6E90");let d=new Set;l.forEach(({targetDir:a})=>{d.add(a)});for(let a of d)for(let u of o){let r=$.resolve(t,u),f=$.resolve(a,u);if(h.existsSync(r)){let x=$.dirname(f);h.existsSync(x)||h.mkdirSync(x,{recursive:!0}),h.copyFileSync(r,f),s(`\u590D\u5236public\u8D44\u6E90: ${u} -> ${$.relative(t,f)}`)}}if(l.forEach(({targetDir:a},u)=>{let r=$.resolve(t,`${u}.html`),f=u;if(h.existsSync(r)||(r=$.resolve(t,`.temp.mp.${u}.html`),h.existsSync(r)&&(f=u)),h.existsSync(r)){let x=h.readFileSync(r,"utf-8");x=x.replace(/(?:src|href)="\/assets\//g,b=>b.replace("/assets/","./assets/"));let p;e==="strategy"?p=$.resolve(a,`${f}.html`):e==="page"?p=$.resolve(a,"index.html"):p=r,h.writeFileSync(p,x),p!==r&&h.unlinkSync(r);let y=$.relative(t,p);s(`\u6309${e}\u5206\u7EC4\u79FB\u52A8HTML\u6587\u4EF6: ${f}.html -> ${y}`)}else s(`\u8B66\u544A: \u672A\u627E\u5230HTML\u6587\u4EF6: ${u}.html \u6216 .temp.mp.${u}.html`)}),h.existsSync(n))if(e==="strategy"||e==="page")try{h.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{g.forEach((u,r)=>{let f=$.resolve(n,r);h.existsSync(f)&&(h.unlinkSync(f),s(`\u6E05\u7406\u539F\u59CB\u8D44\u6E90\u6587\u4EF6: assets/${r}`))});let a=h.readdirSync(n);a.length===0?(h.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")&&o.size>0&&(s("\u7B2C\u4E94\u9636\u6BB5\u8865\u5145\uFF1A\u6E05\u7406\u6839\u76EE\u5F55\u7684public\u8D44\u6E90"),o.forEach(a=>{let u=$.resolve(t,a);if(h.existsSync(u))try{h.unlinkSync(u),s(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90: ${a}`)}catch(r){s(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90\u5931\u8D25: ${a}`,r)}}),o.forEach(a=>{let u=$.resolve(t,a),r=$.dirname(u);for(;r!==t&&r!==$.dirname(r);)try{if(h.existsSync(r)&&h.readdirSync(r).length===0)h.rmdirSync(r),s(`\u5220\u9664\u7A7A\u76EE\u5F55: ${$.relative(t,r)}`),r=$.dirname(r);else break}catch{break}}))}function Pe(t){let e,i=[],s=()=>{};return{name:"vite-multi-page",async configResolved(n){let c=null;J()&&(c=await Q({mode:n.command==="serve"?"development":"production",command:n.command,isCLI:!1}));let l=I(c);e=t?t(l,{mode:n.command==="serve"?"development":"production",command:n.command,isCLI:!1}):l,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:c}){var l;if(c==="serve"){let g=process.argv,o=g.find(m=>m.startsWith("--strategy="));if(o){let m=o.split("=")[1];m&&(process.env.VITE_MULTI_PAGE_STRATEGY=m)}else{let m=g.findIndex(d=>d==="--strategy");if(m!==-1&&m+1<g.length){let d=g[m+1];process.env.VITE_MULTI_PAGE_STRATEGY=d}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(c==="build"){if(!e){let d=null;J()&&(d=await Q({mode:"production",command:"build",isCLI:!1}));let a=I(d);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 g=process.env.VITE_MULTI_PAGE_STRATEGY,o=k({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:g}),m=Object.keys(o)[0];if(m&&o[m]){s(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${m}`);let d=o[m],a=(0,Ce.mergeConfig)(n,d);Object.assign(n,a),s(`\u5DF2\u5E94\u7528\u7B56\u7565 "${m}" \u7684\u914D\u7F6E:`,{build:!!d.build,define:!!d.define,plugins:((l=d.plugins)==null?void 0:l.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
|
|
106
106
|
|
|
107
107
|
\u53EF\u80FD\u7684\u539F\u56E0\uFF1A
|
|
108
108
|
1. \u914D\u7F6E\u6587\u4EF6\u8FD4\u56DE\u7A7A\u5BF9\u8C61 {}
|
|
@@ -117,7 +117,7 @@ export default () => ({
|
|
|
117
117
|
strategies: {
|
|
118
118
|
default: {}
|
|
119
119
|
}
|
|
120
|
-
});`)}},configureServer(n){if(n.config.command==="serve"){s("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let c=process.env.VITE_MULTI_PAGE_STRATEGY||"default";s(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${c}`),ye(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:c},s)}},writeBundle(n){if(!(e!=null&&e.merge)||e.merge==="all")return;let c=n.dir||"dist",l=e.merge;s(`\u5E94\u7528\u6784\u5EFA\u4EA7\u7269\u5408\u5E76\u6A21\u5F0F: ${l}`);try{we(c,l,e,s)}catch(
|
|
120
|
+
});`)}},configureServer(n){if(n.config.command==="serve"){s("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let c=process.env.VITE_MULTI_PAGE_STRATEGY||"default";s(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${c}`),ye(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:c},s)}},writeBundle(n){if(!(e!=null&&e.merge)||e.merge==="all")return;let c=n.dir||"dist",l=e.merge;s(`\u5E94\u7528\u6784\u5EFA\u4EA7\u7269\u5408\u5E76\u6A21\u5F0F: ${l}`);try{we(c,l,e,s)}catch(g){throw s("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",g),g}},buildEnd(){i.length>0&&(s(`\u6E05\u7406 ${i.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),i.forEach(n=>{try{h.existsSync(n)&&(h.unlinkSync(n),s(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${n}`))}catch(c){s(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${n}`,c)}}),i.length=0)}}}function ke(t,e,i,s){return we(t,e,i,s)}var h,$,Ce,Se,He,Ee=O(()=>{"use strict";S();h=F(require("fs")),$=F(require("path")),Ce=require("vite");xe();A();ce();K();Se=F(require("glob"));be();A();K();He=Pe});var Xe={};B(Xe,{buildAll:()=>Me});module.exports=Le(Xe);S();var Te=require("child_process"),v=F(require("fs")),C=F(require("path")),X=F(require("glob"));A();function Ge(){let t=process.argv.slice(2),e=[],i=!1,s,n;for(let c=0;c<t.length;c++){let l=t[c];l==="--debug"?i=!0:l==="--cwd"?s=t[++c]:l==="--strategy"?n=t[++c].split(",").map(o=>o.trim()):l==="--help"||l==="-h"?(console.log(`
|
|
121
121
|
\u4F7F\u7528\u65B9\u6CD5: vite-mp [\u9009\u9879]
|
|
122
122
|
|
|
123
123
|
\u9009\u9879:
|
|
@@ -135,8 +135,8 @@ export default () => ({
|
|
|
135
135
|
vite-mp --debug # \u542F\u7528\u8C03\u8BD5\u6A21\u5F0F
|
|
136
136
|
vite-mp --cwd example # \u5728example\u76EE\u5F55\u8FD0\u884C
|
|
137
137
|
vite-mp --mode production --debug # \u4F20\u9012\u989D\u5916\u53C2\u6570\u7ED9vite
|
|
138
|
-
`),process.exit(0)):l!=="build"&&e.push(l)}return{viteBuildArgs:e,debug:
|
|
139
|
-
\u53EF\u7528\u7B56\u7565: ${
|
|
140
|
-
\u{1F4CA} \u6784\u5EFA\u7ED3\u679C\u7EDF\u8BA1:`),console.log(`\u2705 \u6210\u529F: ${
|
|
141
|
-
\u274C \u5931\u8D25\u7684\u7B56\u7565:`),a.filter(
|
|
142
|
-
\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: ${
|
|
138
|
+
`),process.exit(0)):l!=="build"&&e.push(l)}return{viteBuildArgs:e,debug:i,cwd:s,strategies:n}}async function Ye(){let{loadUserConfig:t,hasCustomConfig:e}=await Promise.resolve().then(()=>(ce(),ue)),{mergeWithDefaults:i}=await Promise.resolve().then(()=>(K(),de)),s=null;return e()?s=await t({mode:"production",command:"build",isCLI:!0}):console.log("\u2139\uFE0F \u672A\u627E\u5230\u914D\u7F6E\u6587\u4EF6\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u914D\u7F6E"),i(s)}function ze(t,e,i){return new Promise(s=>{var m;let n=i?console.log.bind(console,`[${t}]`):()=>{};n(`\u5F00\u59CB\u6784\u5EFA\u7B56\u7565: ${t}`);let c={...process.env,VITE_MULTI_PAGE_STRATEGY:t},l=["build",...e];n(`\u6267\u884C\u547D\u4EE4: npx vite ${l.join(" ")}`);let g=(0,Te.spawn)("npx",["vite",...l],{stdio:i?"inherit":"pipe",env:c,cwd:process.cwd()}),o="";i||(m=g.stderr)==null||m.on("data",d=>{o+=d.toString()}),g.on("close",d=>{let a=d===0,u=L(e);if(a){n(`\u2705 \u7B56\u7565 ${t} \u6784\u5EFA\u6210\u529F`);try{if(v.existsSync(u)){let r=v.readdirSync(u);for(let f of r)if(f.startsWith(".temp.mp.")&&f.endsWith(".html")){let x=C.resolve(u,f),y=`${f.replace(/^\.temp\.mp\./,"").replace(/\.html$/,"")}.html`,b=C.resolve(u,y);v.renameSync(x,b),n(`\u91CD\u547D\u540DHTML: ${f} -> ${y}`)}}}catch(r){n("\u91CD\u547D\u540DHTML\u6587\u4EF6\u5931\u8D25:",r)}}else n(`\u274C \u7B56\u7565 ${t} \u6784\u5EFA\u5931\u8D25 (\u9000\u51FA\u7801: ${d})`),!i&&o&&console.error(`\u7B56\u7565 ${t} \u9519\u8BEF\u8F93\u51FA:`,o);s({strategy:t,success:a,error:a?void 0:o||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${d}`,outputDir:u})}),g.on("error",d=>{n(`\u274C \u7B56\u7565 ${t} \u6784\u5EFA\u51FA\u9519:`,d.message);let a=L(e);s({strategy:t,success:!1,error:d.message,outputDir:a})})})}async function qe(t,e,i){let s=i?console.log.bind(console,"[merge]"):()=>{};s("\u5F00\u59CB\u5408\u5E76\u6784\u5EFA\u7ED3\u679C...");let n=e.merge||"all";s(`\u4F7F\u7528\u5408\u5E76\u6A21\u5F0F: ${n}`),n==="all"?await Oe(t,i):await Je(t,e,i)}async function Oe(t,e){let i=e?console.log.bind(console,"[merge]"):()=>{},s=C.resolve(process.cwd(),"dist"),n=C.resolve(s,"assets");v.existsSync(n)||v.mkdirSync(n,{recursive:!0});let c=[];for(let l of t){if(!l.success)continue;let g=C.resolve(s,l.strategy);if(!v.existsSync(g)){i(`\u8B66\u544A: \u7B56\u7565\u76EE\u5F55\u4E0D\u5B58\u5728: ${g}`);continue}i(`\u5904\u7406\u7B56\u7565: ${l.strategy}`);let o=v.readdirSync(g,{withFileTypes:!0});for(let m of o){let d=C.resolve(g,m.name);if(m.isFile())if(m.name.endsWith(".html")){let a=C.resolve(s,m.name);v.copyFileSync(d,a),c.push(m.name),i(`\u590D\u5236HTML: ${m.name} -> dist/${m.name}`)}else{let a=C.resolve(s,m.name);v.copyFileSync(d,a),i(`\u590D\u5236\u6587\u4EF6: ${m.name} -> dist/${m.name}`)}else if(m.isDirectory()&&m.name==="assets"){let a=d,u=v.readdirSync(a,{withFileTypes:!0});for(let r of u){let f=C.resolve(a,r.name),x=C.resolve(n,r.name);if(r.isFile())if(v.existsSync(x)){let p=v.readFileSync(f),y=v.readFileSync(x);if(p.equals(y))i(`\u8DF3\u8FC7\u91CD\u590D\u8D44\u6E90: ${r.name}`);else{let b=C.extname(r.name),P=`${C.basename(r.name,b)}-${l.strategy}${b}`,W=C.resolve(n,P);v.copyFileSync(f,W),i(`\u590D\u5236\u8D44\u6E90(\u91CD\u547D\u540D): ${r.name} -> assets/${P}`)}}else v.copyFileSync(f,x),i(`\u590D\u5236\u8D44\u6E90: ${r.name} -> assets/${r.name}`);else if(r.isDirectory()){let p=C.resolve(n,r.name);v.existsSync(p)||v.mkdirSync(p,{recursive:!0}),v.cpSync(f,p,{recursive:!0}),i(`\u590D\u5236\u8D44\u6E90\u76EE\u5F55: ${r.name} -> assets/${r.name}`)}}}else if(m.isDirectory()){let a=C.resolve(s,m.name);v.cpSync(d,a,{recursive:!0}),i(`\u590D\u5236\u76EE\u5F55: ${m.name} -> dist/${m.name}`)}}}i("\u2705 \u6784\u5EFA\u7ED3\u679C\u5408\u5E76\u5B8C\u6210"),i(`\u{1F4C1} \u751F\u6210\u9875\u9762: ${c.join(", ")}`),i("\u{1F4E6} \u8D44\u6E90\u76EE\u5F55: dist/assets/"),i(`\u{1F527} \u5904\u7406\u7B56\u7565: ${t.filter(l=>l.success).map(l=>l.strategy).join(", ")}`)}async function Je(t,e,i){let s=i?console.log.bind(console,"[merge]"):()=>{};await Oe(t,i);let n=C.resolve(process.cwd(),"dist"),c=e.merge;s(`\u5E94\u7528${c}\u6A21\u5F0F\u7684\u8D44\u6E90\u91CD\u7EC4...`);try{let{reorganizeAssetsInCLI:l}=await Promise.resolve().then(()=>(Ee(),Fe));await l(n,c,e,s),s(`\u2705 ${c}\u6A21\u5F0F\u8D44\u6E90\u91CD\u7EC4\u5B8C\u6210`)}catch(l){throw s("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",l),l}}async function Qe(t){let e=t?console.log.bind(console,"[cleanup]"):()=>{};e("\u6E05\u7406\u4E34\u65F6HTML\u6587\u4EF6...");let i=X.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let s of i){let n=C.resolve(process.cwd(),s);try{v.unlinkSync(n),e(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${s}`)}catch(c){e(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${s}`,c)}}i.length===0?e("\u6CA1\u6709\u627E\u5230\u4E34\u65F6\u6587\u4EF6"):e(`\u2705 \u6E05\u7406\u4E86 ${i.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`)}async function Ke(t,e,i){let s=i?console.log.bind(console,"[cleanup]"):()=>{};s("\u6E05\u7406\u4E34\u65F6\u6587\u4EF6...");let n=e.merge||"all",c=X.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let l of c){let g=C.resolve(process.cwd(),l);try{v.unlinkSync(g),s(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6: ${l}`)}catch(o){s(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${l}`,o)}}for(let l of t){let g=C.resolve(process.cwd(),"dist",l);if(v.existsSync(g)){let o=X.sync("*.mp.temp.html",{cwd:g});for(let m of o){let d=C.resolve(g,m);try{v.unlinkSync(d),s(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6: ${l}/${m}`)}catch(a){s(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${l}/${m}`,a)}}}}if(n==="all"){let l=C.resolve(process.cwd(),"dist");for(let g of t){let o=C.resolve(l,g);if(v.existsSync(o))try{v.rmSync(o,{recursive:!0,force:!0}),s(`\u5220\u9664\u7B56\u7565\u76EE\u5F55: ${g}`)}catch(m){s(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u5931\u8D25: ${g}`,m)}}}else s(`\u4FDD\u7559\u7B56\u7565\u76EE\u5F55 (merge\u6A21\u5F0F: ${n})`);s("\u2705 \u6E05\u7406\u5B8C\u6210")}async function Me(){let{viteBuildArgs:t,debug:e,cwd:i,strategies:s}=Ge(),n=e?console.log.bind(console,"[main]"):()=>{};if(i){let c=C.resolve(process.cwd(),i);v.existsSync(c)||(console.error(`\u274C \u6307\u5B9A\u7684\u76EE\u5F55\u4E0D\u5B58\u5728: ${c}`),process.exit(1)),process.chdir(c),n(`\u5207\u6362\u5DE5\u4F5C\u76EE\u5F55\u5230: ${c}`)}try{n("\u{1F680} \u5F00\u59CB\u591A\u7B56\u7565\u6784\u5EFA..."),n("\u{1F4CB} \u52A0\u8F7D\u914D\u7F6E...");let c=await Ye(),{getAvailableStrategies:l}=await Promise.resolve().then(()=>(A(),ae)),g=l({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(g.length===0)throw new Error("\u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565");let o;if(s&&s.length>0){let p=s.filter(y=>!g.includes(y));if(p.length>0)throw new Error(`\u6307\u5B9A\u7684\u7B56\u7565\u4E0D\u5B58\u5728: ${p.join(", ")}
|
|
139
|
+
\u53EF\u7528\u7B56\u7565: ${g.join(", ")}`);o=s,n(`\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${o.join(", ")}`)}else o=g,n(`\u6784\u5EFA\u6240\u6709\u53EF\u7528\u7B56\u7565: ${o.join(", ")}`);n("\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55...");let{cleanViteOutputDirectory:m}=await Promise.resolve().then(()=>(A(),ae));m(t),n("\u{1F528} \u5F00\u59CB\u5E76\u884C\u6784\u5EFA...");let d=o.map(p=>ze(p,t,e)),a=await Promise.all(d),u=a.filter(p=>p.success).length,r=a.length-u;console.log(`
|
|
140
|
+
\u{1F4CA} \u6784\u5EFA\u7ED3\u679C\u7EDF\u8BA1:`),console.log(`\u2705 \u6210\u529F: ${u}`),console.log(`\u274C \u5931\u8D25: ${r}`),r>0&&(console.log(`
|
|
141
|
+
\u274C \u5931\u8D25\u7684\u7B56\u7565:`),a.filter(p=>!p.success).forEach(p=>{console.log(` - ${p.strategy}: ${p.error}`)}),await Qe(e),process.exit(1)),n("\u{1F4E6} \u5408\u5E76\u6784\u5EFA\u7ED3\u679C..."),await qe(a,c,e),await Ke(o,c,e);let f=a.filter(p=>p.success),x=v.readdirSync(C.resolve(process.cwd(),"dist")).filter(p=>p.endsWith(".html"));console.log(`
|
|
142
|
+
\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: ${x.join(", ")}`),console.log(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${f.map(p=>p.strategy).join(", ")}`)}catch(c){console.error("\u274C \u6784\u5EFA\u5931\u8D25:",c instanceof Error?c.message:c),process.exit(1)}}require.main===module&&Me().catch(t=>{console.error("\u274C \u672A\u5904\u7406\u7684\u9519\u8BEF:",t),process.exit(1)});0&&(module.exports={buildAll});
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
"use strict";var ce=Object.create;var
|
|
1
|
+
"use strict";var ce=Object.create;var A=Object.defineProperty;var fe=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var ge=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty;var de=(t,e)=>{for(var a in e)A(t,a,{get:e[a],enumerable:!0})},q=(t,e,a,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of pe(e))!me.call(t,r)&&r!==a&&A(t,r,{get:()=>e[r],enumerable:!(n=fe(e,r))||n.enumerable});return t};var P=(t,e,a)=>(a=t!=null?ce(ge(t)):{},q(e||!t||!t.__esModule?A(a,"default",{value:t,enumerable:!0}):a,t)),ue=t=>q(A({},"__esModule",{value:!0}),t);var Se={};de(Se,{cleanViteOutputDirectory:()=>Z,default:()=>$e,defineConfig:()=>ne,defineConfigTransform:()=>re,generateBuildConfig:()=>W,getAvailableStrategies:()=>ee,getViteOutputDirectory:()=>H,mergeWithDefaults:()=>L,reorganizeAssetsInCLI:()=>be,viteMultiPage:()=>le});module.exports=ue(Se);var u=P(require("fs")),C=P(require("path")),ie=require("vite");var w=P(require("path")),R=P(require("fs")),Q=require("glob");var O=P(require("path"));function N(t,e,a,n){let r=[],g=new Map,d=e.replace(/\/\*.*$/,"");(!d||d===e)&&(d=O.dirname(e.split("*")[0]));let p=[];for(let i of t){if(a.includes(i))continue;let m=i.replace(/\\/g,"/"),h=d.replace(/\\/g,"/"),c=O.posix.relative(h,m).split("/");if(c.length===1){let s=c[0],l=O.posix.basename(s,O.posix.extname(s));p.push({name:l,file:i,priority:1})}else if(c.length>=2){let s=O.posix.basename(m,O.posix.extname(m)),l=c[0];s==="main"&&p.push({name:l,file:i,priority:2})}}for(let i of p){let m=g.get(i.name);m?i.priority>m.priority&&g.set(i.name,{file:i.file,priority:i.priority}):g.set(i.name,{file:i.file,priority:i.priority})}for(let[i,{file:m}]of g.entries())r.push({name:i,file:m});return r}function J(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function U(t){return(...e)=>{t&&console.log("[vite-plugin-multi-page]",...e)}}function _(t,e,a){if(!t)return null;if(typeof t=="function"){let n=t(e);return n}for(let[n,r]of Object.entries(t)){if(n===e.pageName)return a(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${e.pageName}:`,r),r;if(r.match&&(Array.isArray(r.match)?r.match:[r.match]).some(p=>I(p,e.pageName)||I(p,e.relativePath)||I(p,e.filePath)))return a(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${r.match}):`,r),{...r,match:void 0};if(I(n,e.pageName))return a(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${n}):`,r),r}return null}function I(t,e){let a=t.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${a}$`).test(e)}function he(t,e,a){try{let n=Q.glob.sync(e.entry,{cwd:process.cwd()}),r=N(n,e.entry,e.exclude,a);if(r.length===0){a("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6");return}let g=e.devStrategy||t.config.__cliStrategy||t.config.strategy;g&&(a(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${g}`),r=r.filter(d=>{let p={pageName:d.name,filePath:d.file,relativePath:w.relative(process.cwd(),d.file),strategy:void 0,isMatched:!1},i=_(e.pageConfigs,p,a),m=(i==null?void 0:i.strategy)||"default";return g==="default"?m==="default":m===g}),a(`\u7B56\u7565 "${g}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${r.map(d=>d.name).join(", ")||"\u65E0"}`)),a("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",r),t.middlewares.use(async(d,p,i)=>{try{let h=(d.url||"").split("?")[0];if(h==="/"){let s=xe(r,e,a);p.statusCode=200,p.setHeader("Content-Type","text/html"),p.end(s);return}if(h.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!h.endsWith(".html")||h.startsWith("/@")||h.includes("__vite")||h.startsWith("/node_modules"))return i();let o="";if(h.endsWith(".html"))o=w.basename(h,".html");else if(h.startsWith("/")){let s=h.substring(1);if(r.find(l=>l.name===s))o=s;else{let l=s.split("/");if(l.length>1){let x=l[0];r.find(f=>f.name===x)&&(o=x,a(`History \u8DEF\u7531\u5339\u914D: ${h} -> ${x}`))}}}if(!o)return i();let c=r.find(s=>s.name===o);return c?ye(p,c,e,a):i()}catch(m){a(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${m}`),i(m)}}),a("\u5F00\u53D1\u670D\u52A1\u5668\u914D\u7F6E\u5B8C\u6210")}catch(n){throw a(`\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668\u5931\u8D25: ${n}`),n}}function ye(t,e,a,n){var h;let r={pageName:e.name,filePath:e.file,relativePath:w.relative(process.cwd(),e.file),strategy:void 0,isMatched:!1},g=_(a.pageConfigs,r,n);if(g!=null&&g.strategy)r.strategy=g.strategy;else if((h=a.appliedStrategies)!=null&&h.has(e.name)){let o=a.appliedStrategies.get(e.name);o&&(r.strategy=o)}let d="",p=w.resolve(process.cwd(),`${e.name}.html`);if(R.existsSync(p)?d=p:g!=null&&g.template?d=w.resolve(process.cwd(),g.template):d=w.resolve(process.cwd(),a.template),!R.existsSync(d)){t.statusCode=404,t.end("Template not found");return}let i=R.readFileSync(d,"utf-8");if(i.includes(a.placeholder)){let o=i;if(i=i.split(a.placeholder).join(`/${e.file}`),i===o){let c=J(a.placeholder),s=new RegExp(c,"g");i=o.replace(s,`/${e.file}`),i===o&&(i=o.replace(/\{\{ENTRY_FILE\}\}/g,`/${e.file}`))}}if(g!=null&&g.define){let o=Object.entries(g.define).map(([c,s])=>{let l=typeof s=="string"?`"${s}"`:JSON.stringify(s);return`window.${c} = ${l};`}).join(`
|
|
2
2
|
`);o&&(i=i.replace(/<\/head>/i,`<script type="text/javascript">
|
|
3
3
|
${o}
|
|
4
4
|
</script>
|
|
5
|
-
</head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(i)}var K=
|
|
5
|
+
</head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(i)}var K=he;function xe(t,e,a){try{let n=t.map(r=>{var m;let g={pageName:r.name,filePath:r.file,relativePath:w.relative(process.cwd(),r.file),strategy:void 0,isMatched:!1},d=_(e.pageConfigs,g,a),p="default";if(d!=null&&d.strategy)p=d.strategy;else if((m=e.appliedStrategies)!=null&&m.has(r.name)){let h=e.appliedStrategies.get(r.name);h&&(p=h)}let i=p!=="default"?`<span class="badge">${p}</span>`:"";return`
|
|
6
6
|
<div class="page-item">
|
|
7
|
-
<a href="${
|
|
8
|
-
${
|
|
7
|
+
<a href="${r.name}.html" class="page-link">
|
|
8
|
+
${r.name}${i}
|
|
9
9
|
</a>
|
|
10
|
-
<div class="page-path">${
|
|
10
|
+
<div class="page-path">${r.file}</div>
|
|
11
11
|
</div>`}).join("");return`
|
|
12
12
|
<!DOCTYPE html>
|
|
13
13
|
<html lang="en">
|
|
@@ -83,11 +83,11 @@ ${o}
|
|
|
83
83
|
\u627E\u5230 ${t.length} \u4E2A\u9875\u9762
|
|
84
84
|
</div>
|
|
85
85
|
<div class="page-list">
|
|
86
|
-
${
|
|
86
|
+
${n}
|
|
87
87
|
</div>
|
|
88
88
|
</body>
|
|
89
89
|
</html>
|
|
90
|
-
`}catch(
|
|
90
|
+
`}catch(n){return a(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${n}`),`
|
|
91
91
|
<!DOCTYPE html>
|
|
92
92
|
<html>
|
|
93
93
|
<head>
|
|
@@ -95,13 +95,13 @@ ${o}
|
|
|
95
95
|
</head>
|
|
96
96
|
<body>
|
|
97
97
|
<h1>\u751F\u6210\u7D22\u5F15\u9875\u65F6\u53D1\u751F\u9519\u8BEF</h1>
|
|
98
|
-
<p>${
|
|
98
|
+
<p>${n}</p>
|
|
99
99
|
</body>
|
|
100
100
|
</html>
|
|
101
|
-
`}}var X=require("vite"),G=require("glob")
|
|
101
|
+
`}}var X=require("vite"),G=require("glob"),S=P(require("path")),F=P(require("fs"));function W(t){var h;let{entry:e="src/pages/*/main.{ts,js}",exclude:a=[],template:n="index.html",placeholder:r="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:g={},pageConfigs:d={},forceBuildStrategy:p}=t,i=U(!0),m={};try{let o=G.glob.sync(e,{cwd:process.cwd()}),c=N(o,e,a,i);if(c.length===0)return i("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let s=new Map,l=new Map;for(let f of c){let y={pageName:f.name,filePath:f.file,relativePath:S.relative(process.cwd(),f.file)},v=_(d,y,i),b=(v==null?void 0:v.strategy)||"default";s.set(f.name,b),l.has(b)||l.set(b,[]),(h=l.get(b))==null||h.push(f.name)}if(i(`\u{1F4C4} \u53D1\u73B0 ${c.length} \u4E2A\u9875\u9762: ${c.map(f=>f.name).join(", ")}`),p){let f=l.get(p)||[];if(f.length===0)return i(`\u8B66\u544A: \u7B56\u7565 "${p}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};i(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${p}, \u9875\u9762: ${f.join(", ")}`);let y=k(p,f,c,g[p],d,n,r,i);return m[p]=y,m}for(let[f,y]of l){if(y.length===0)continue;let v=g[f]||{},b=k(f,y,c,v,d,n,r,i);m[f]=b}if(Object.keys(m).length===0){i("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let f=c.map(v=>v.name),y=k("default",f,c,{},d,n,r,i);m.default=y}let x=Object.keys(m);return i(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${x.join(", ")}`),m}catch(o){throw i("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",o),o}}function k(t,e,a,n,r,g,d,p){let i={},m=[],h={};for(let s of e){let l=a.find(B=>B.name===s);if(!l)continue;let x={pageName:s,filePath:l.file,relativePath:S.relative(process.cwd(),l.file),strategy:t},f=_(r,x,p);f!=null&&f.define&&Object.assign(h,f.define);let y=g,v=`${s}.html`;F.existsSync(S.resolve(process.cwd(),v))?y=v:f!=null&&f.template&&(y=f.template);let b=S.resolve(process.cwd(),y);if(!F.existsSync(b)){p(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${y}`);continue}let $=F.readFileSync(b,"utf-8");if($.includes(d)){let B=`./${l.file}`;$=$.replace(new RegExp(d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),B)}let V=S.resolve(process.cwd(),`.temp.mp.${s}.html`);F.writeFileSync(V,$),m.push(V),i[s]=V}let o={build:{rollupOptions:{input:i,output:{entryFileNames:s=>{let l=e.find(x=>s.name===x);return l?`assets/mp${l}-[name]-[hash].js`:"assets/[name]-[hash].js"},chunkFileNames:s=>{var x;if(s.facadeModuleId)for(let f of e){let y=a.find(v=>v.name===f);if(y&&s.facadeModuleId.includes(y.file.replace(/\\/g,"/")))return`assets/mp${f}-[name]-[hash].js`;if(s.facadeModuleId.includes(`/pages/${f}/`)||s.facadeModuleId.includes(`\\pages\\${f}\\`))return`assets/mp${f}-[name]-[hash].js`}if(s.moduleIds){for(let f of s.moduleIds)for(let y of e)if(f.includes(`/pages/${y}/`)||f.includes(`\\pages\\${y}\\`))return`assets/mp${y}-[name]-[hash].js`}let l=s.name||"";if(l.includes("lodash")||l.includes("vendor")||!s.facadeModuleId||s.facadeModuleId.includes("node_modules")){let f=[...s.moduleIds||[]];s.facadeModuleId&&f.push(s.facadeModuleId);for(let y of e)for(let v of f)if(v.includes(`/pages/${y}/`)||v.includes(`\\pages\\${y}\\`))return`assets/mp${y}-[name]-[hash].js`;for(let y of e)if(l.toLowerCase().includes(y.toLowerCase()))return`assets/mp${y}-[name]-[hash].js`;if(e.includes("spa")&&(l.includes("lodash")||l.includes("vendor")||(x=s.facadeModuleId)!=null&&x.includes("node_modules")))return"assets/mpspa-[name]-[hash].js"}return"assets/[name]-[hash].js"},assetFileNames:s=>{if(s.name){for(let l of e)if(s.name.includes(l))return`assets/mp${l}-[name]-[hash][extname]`;if(s.source&&typeof s.source=="string"){for(let l of e)if(s.source.includes(`pages/${l}/`))return`assets/mp${l}-[name]-[hash][extname]`}if(s.originalFileName){for(let l of e)if(s.originalFileName.includes(`/pages/${l}/`)||s.originalFileName.includes(`\\pages\\${l}\\`))return`assets/mp${l}-[name]-[hash][extname]`}if(s.name==="ttt"||s.name==="test-styles"||s.name.startsWith("test-styles")){let l=Object.keys(i);for(let x of e)if(l.some(f=>f===x)){if(s.name==="ttt"&&x==="mobile")return`assets/mp${x}-[name]-[hash][extname]`;if((s.name==="test-styles"||s.name.startsWith("test-styles"))&&(x==="mobile"||x==="home"))return`assets/mp${x}-[name]-[hash][extname]`}if(s.name==="ttt"||s.name==="test-styles"||s.name.startsWith("test-styles"))return"assets/mpmobile-[name]-[hash][extname]"}if(typeof s.source=="string"&&s.source.length>0){for(let l of e)if(s.source.includes(`${l}-`)||s.source.includes(`.${l}`)||s.source.includes(`/* ${l}`))return`assets/mp${l}-[name]-[hash][extname]`}}return"assets/[name]-[hash][extname]"}}},emptyOutDir:!1},define:{}},c=o;return n&&(c=(0,X.mergeConfig)(o,n)),Object.keys(h).length>0&&(c.define={...c.define,...h}),c.build||(c.build={}),c.build.rollupOptions||(c.build.rollupOptions={}),c.build.rollupOptions.input=i,c.build.emptyOutDir=!1,p(`\u7B56\u7565 "${t}" - ${e.length} \u4E2A\u9875\u9762`),c}function H(t=[]){let e=t.findIndex(n=>n==="--outDir");if(e!==-1&&e+1<t.length){let n=t[e+1];return S.resolve(process.cwd(),n)}let a=t.find(n=>n.startsWith("--outDir="));if(a){let n=a.split("=")[1];return S.resolve(process.cwd(),n)}return S.resolve(process.cwd(),"dist")}function Z(t=[]){let e=H(t),a=U(!0);try{F.existsSync(e)&&(F.rmSync(e,{recursive:!0,force:!0}),a(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${S.relative(process.cwd(),e)}`))}catch(n){a(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,n)}}function ee(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:a=[],pageConfigs:n={}}=t,r=U(!1),g=new Set,d=G.glob.sync(e,{cwd:process.cwd()}),p=N(d,e,a,r);if(p.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let i of p){let m={pageName:i.name,filePath:i.file,relativePath:S.relative(process.cwd(),i.file)},h=_(n,m,r),o=(h==null?void 0:h.strategy)||"default";g.add(o)}return Array.from(g).sort()}catch(i){return r("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",i),["default"]}}var j=P(require("fs")),M=P(require("path")),te=require("url"),D=require("module"),se=["multipage.config.js","multipage.config.mjs","multipage.config.ts"];function Y(){for(let t of se){let e=M.resolve(process.cwd(),t);if(j.existsSync(e))return!0}return!1}async function z(t){let e=await ve();if(e){let a=e(t);return a||{}}return null}async function Ce(t){if(t.endsWith(".ts"))try{let e=await j.promises.readFile(t,"utf-8"),a;try{a=await import("esbuild")}catch{throw console.error(`
|
|
102
102
|
\u274C \u65E0\u6CD5\u52A0\u8F7D TypeScript \u914D\u7F6E\u6587\u4EF6\uFF0C\u56E0\u4E3A\u627E\u4E0D\u5230 esbuild \u4F9D\u8D56\u3002`),console.error(`
|
|
103
103
|
\u{1F4A1} \u8BF7\u9009\u62E9\u4EE5\u4E0B\u89E3\u51B3\u65B9\u6848\u4E4B\u4E00\uFF1A`),console.error(' 1. \u5B89\u88C5 esbuild (peerDependency)\uFF1Anpm install esbuild@">=0.19.3" --save-dev'),console.error(" 2. \u6216\u8005\u5982\u679C\u4F7F\u7528 Vite \u9879\u76EE\uFF0Cesbuild \u901A\u5E38\u5DF2\u5B89\u88C5\uFF0C\u8BF7\u68C0\u67E5\u7248\u672C\u662F\u5426 >=0.19.3"),console.error(" 3. \u4F7F\u7528 JavaScript \u914D\u7F6E\u6587\u4EF6\uFF1A\u5C06 multipage.config.ts \u91CD\u547D\u540D\u4E3A multipage.config.js"),console.error(` 4. \u4F7F\u7528 ESM \u914D\u7F6E\u6587\u4EF6\uFF1A\u5C06 multipage.config.ts \u91CD\u547D\u540D\u4E3A multipage.config.mjs
|
|
104
|
-
`),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${M.basename(t)}`)}let
|
|
104
|
+
`),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${M.basename(t)}`)}let n=await a.transform(e,{loader:"ts",format:"cjs",target:"node16",sourcemap:!1}),r=new D.Module(t);return r.filename=t,r.paths=D.Module._nodeModulePaths(M.dirname(t)),r._compile(n.code,t),r.exports}catch(e){if(e instanceof Error&&e.message.includes("\u9700\u8981 esbuild \u4F9D\u8D56"))throw e;console.warn("esbuild \u8F6C\u8BD1\u5931\u8D25\uFF0C\u5C1D\u8BD5\u7B80\u5355\u8F6C\u6362:",e);let n=(await j.promises.readFile(t,"utf-8")).replace(/export\s+default\s+/,"module.exports = ").replace(/import\s+.*?from\s+['"][^'"]*['"];?\s*/g,"").replace(/:\s*[^=,})\]]+/g,""),r=new D.Module(t);return r.filename=t,r.paths=D.Module._nodeModulePaths(M.dirname(t)),r._compile(n,t),r.exports}if(t.endsWith(".js")||t.endsWith(".mjs"))return import(`${(0,te.pathToFileURL)(t).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${t}`)}async function ve(){let t=process.cwd();for(let e of se){let a=M.resolve(t,e);if(j.existsSync(a))try{let n=await Ce(a),r=n.default||n;if(typeof r=="function")return r;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${e} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(n){e.endsWith(".ts")?(console.error(`\u52A0\u8F7DTypeScript\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,n),console.log("\u63D0\u793A\uFF1A\u786E\u4FDD\u4F60\u7684\u9879\u76EE\u652F\u6301TypeScript\uFF0C\u6216\u8005\u4F7F\u7528 .js/.mjs \u914D\u7F6E\u6587\u4EF6")):console.error(`\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,n)}}return null}var E={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,merge:"all",strategies:{default:{}},pageConfigs:{}};function L(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}}var ae=P(require("glob"));function ne(t){return typeof t=="function"?t:()=>t}function re(t){return t}function oe(t,e,a,n){let r=C.resolve(t,"assets");if(!u.existsSync(r)){n("assets\u76EE\u5F55\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u91CD\u7EC4");return}let g=u.readdirSync(t).filter(o=>o.endsWith(".html")).map(o=>C.resolve(t,o));if(g.length===0){if(n("\u672A\u627E\u5230HTML\u6587\u4EF6\uFF0C\u4F46\u4ECD\u9700\u6E05\u7406assets\u76EE\u5F55"),(e==="strategy"||e==="page")&&u.existsSync(r))try{u.rmSync(r,{recursive:!0,force:!0}),n("\u5F3A\u5236\u6E05\u7406\u6574\u4E2A\u6839\u76EE\u5F55assets\u76EE\u5F55 (strategy/page\u6A21\u5F0F)")}catch(o){n("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",o)}return}let d=new Map,p=new Map;g.forEach(o=>{var b;let c=C.basename(o,".html");c.startsWith(".temp.mp.")&&(c=c.replace(".temp.mp.",""));let s=u.readFileSync(o,"utf-8"),l=[],x=/(?:src|href)="\/assets\/([^"]+)"/g,f;for(;(f=x.exec(s))!==null;){let $=f[1];l.push($),p.has($)||p.set($,[]),(b=p.get($))==null||b.push(c)}let y="";e==="strategy"?y="default":e==="page"&&(y=c);let v=C.resolve(t,y);d.set(c,{assets:l,targetDir:v}),n(`\u9875\u9762 ${c} \u4F9D\u8D56\u8D44\u6E90:`,l)}),n("\u7B2C\u4E00\u9636\u6BB5\u8865\u5145\uFF1A\u5206\u6790public\u76EE\u5F55\u8D44\u6E90");let i=new Set,m=C.resolve(process.cwd(),"public");if(u.existsSync(m)){let o=ae.sync("**/*",{cwd:m,nodir:!0});for(let c of o)i.add(c),n(`\u53D1\u73B0public\u8D44\u6E90: ${c}`)}p.forEach((o,c)=>{o.length>1?n(`\u5171\u4EAB\u8D44\u6E90 ${c} \u88AB\u9875\u9762\u4F7F\u7528:`,o):n(`\u72EC\u5360\u8D44\u6E90 ${c} \u4EC5\u88AB\u9875\u9762 ${o[0]} \u4F7F\u7528`)}),d.forEach(({assets:o,targetDir:c},s)=>{let l=C.resolve(c,"assets");if(u.existsSync(l)||u.mkdirSync(l,{recursive:!0}),o.forEach(x=>{let f=C.resolve(r,x),y=C.resolve(l,x);u.existsSync(f)?(u.copyFileSync(f,y),n(`\u590D\u5236\u8D44\u6E90\u6587\u4EF6\u5230 ${s}: assets/${x} -> ${C.relative(t,y)}`)):n(`\u8B66\u544A: \u8D44\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728: ${f}`)}),u.existsSync(r)){let x=u.readdirSync(r),f=`mp${s}-`;x.filter(v=>v.startsWith(f)).forEach(v=>{if(!o.includes(v)){let b=C.resolve(r,v),$=C.resolve(l,v);u.existsSync(b)&&(u.copyFileSync(b,$),n(`\u590D\u5236\u524D\u7F00\u5339\u914D\u7684\u8D44\u6E90\u6587\u4EF6\u5230 ${s}: assets/${v} -> ${C.relative(t,$)}`))}})}}),n("\u7B2C\u4E09\u9636\u6BB5\u8865\u5145\uFF1A\u5904\u7406public\u76EE\u5F55\u8D44\u6E90");let h=new Set;d.forEach(({targetDir:o})=>{h.add(o)});for(let o of h)for(let c of i){let s=C.resolve(t,c),l=C.resolve(o,c);if(u.existsSync(s)){let x=C.dirname(l);u.existsSync(x)||u.mkdirSync(x,{recursive:!0}),u.copyFileSync(s,l),n(`\u590D\u5236public\u8D44\u6E90: ${c} -> ${C.relative(t,l)}`)}}if(d.forEach(({targetDir:o},c)=>{let s=C.resolve(t,`${c}.html`),l=c;if(u.existsSync(s)||(s=C.resolve(t,`.temp.mp.${c}.html`),u.existsSync(s)&&(l=c)),u.existsSync(s)){let x=u.readFileSync(s,"utf-8");x=x.replace(/(?:src|href)="\/assets\//g,v=>v.replace("/assets/","./assets/"));let f;e==="strategy"?f=C.resolve(o,`${l}.html`):e==="page"?f=C.resolve(o,"index.html"):f=s,u.writeFileSync(f,x),f!==s&&u.unlinkSync(s);let y=C.relative(t,f);n(`\u6309${e}\u5206\u7EC4\u79FB\u52A8HTML\u6587\u4EF6: ${l}.html -> ${y}`)}else n(`\u8B66\u544A: \u672A\u627E\u5230HTML\u6587\u4EF6: ${c}.html \u6216 .temp.mp.${c}.html`)}),u.existsSync(r))if(e==="strategy"||e==="page")try{u.rmSync(r,{recursive:!0,force:!0}),n("\u5F3A\u5236\u6E05\u7406\u6574\u4E2A\u6839\u76EE\u5F55assets\u76EE\u5F55 (strategy/page\u6A21\u5F0F)")}catch(o){n("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",o)}else{p.forEach((c,s)=>{let l=C.resolve(r,s);u.existsSync(l)&&(u.unlinkSync(l),n(`\u6E05\u7406\u539F\u59CB\u8D44\u6E90\u6587\u4EF6: assets/${s}`))});let o=u.readdirSync(r);o.length===0?(u.rmdirSync(r),n("\u6E05\u7406\u7A7A\u7684assets\u76EE\u5F55")):n("assets\u76EE\u5F55\u4E2D\u8FD8\u6709\u672A\u5904\u7406\u7684\u6587\u4EF6:",o)}(e==="strategy"||e==="page")&&i.size>0&&(n("\u7B2C\u4E94\u9636\u6BB5\u8865\u5145\uFF1A\u6E05\u7406\u6839\u76EE\u5F55\u7684public\u8D44\u6E90"),i.forEach(o=>{let c=C.resolve(t,o);if(u.existsSync(c))try{u.unlinkSync(c),n(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90: ${o}`)}catch(s){n(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90\u5931\u8D25: ${o}`,s)}}),i.forEach(o=>{let c=C.resolve(t,o),s=C.dirname(c);for(;s!==t&&s!==C.dirname(s);)try{if(u.existsSync(s)&&u.readdirSync(s).length===0)u.rmdirSync(s),n(`\u5220\u9664\u7A7A\u76EE\u5F55: ${C.relative(t,s)}`),s=C.dirname(s);else break}catch{break}}))}function le(t){let e,a=[],n=()=>{};return{name:"vite-multi-page",async configResolved(r){let g=null;Y()&&(g=await z({mode:r.command==="serve"?"development":"production",command:r.command,isCLI:!1}));let d=L(g);e=t?t(d,{mode:r.command==="serve"?"development":"production",command:r.command,isCLI:!1}):d,n=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{},n("Vite\u914D\u7F6E\u5DF2\u89E3\u6790, \u4F7F\u7528\u914D\u7F6E:",{strategies:Object.keys(e.strategies||{}),entry:e.entry})},async config(r,{command:g}){var d;if(g==="serve"){let p=process.argv,i=p.find(m=>m.startsWith("--strategy="));if(i){let m=i.split("=")[1];m&&(process.env.VITE_MULTI_PAGE_STRATEGY=m)}else{let m=p.findIndex(h=>h==="--strategy");if(m!==-1&&m+1<p.length){let h=p[m+1];process.env.VITE_MULTI_PAGE_STRATEGY=h}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(g==="build"){if(!e){let h=null;Y()&&(h=await z({mode:"production",command:"build",isCLI:!1}));let o=L(h);e=t?t(o,{mode:"production",command:"build",isCLI:!1}):o,n=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{}}n("\u914D\u7F6E\u6784\u5EFA\u6A21\u5F0F");let p=process.env.VITE_MULTI_PAGE_STRATEGY,i=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}),m=Object.keys(i)[0];if(m&&i[m]){n(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${m}`);let h=i[m],o=(0,ie.mergeConfig)(r,h);Object.assign(r,o),n(`\u5DF2\u5E94\u7528\u7B56\u7565 "${m}" \u7684\u914D\u7F6E:`,{build:!!h.build,define:!!h.define,plugins:((d=h.plugins)==null?void 0:d.length)||0})}else throw n("\u672A\u627E\u5230\u53EF\u7528\u7684\u6784\u5EFA\u7B56\u7565\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u914D\u7F6E"),new Error(`\u274C \u6784\u5EFA\u5931\u8D25: \u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565
|
|
105
105
|
|
|
106
106
|
\u53EF\u80FD\u7684\u539F\u56E0\uFF1A
|
|
107
107
|
1. \u914D\u7F6E\u6587\u4EF6\u8FD4\u56DE\u7A7A\u5BF9\u8C61 {}
|
|
@@ -116,5 +116,5 @@ export default () => ({
|
|
|
116
116
|
strategies: {
|
|
117
117
|
default: {}
|
|
118
118
|
}
|
|
119
|
-
});`)}},configureServer(
|
|
119
|
+
});`)}},configureServer(r){if(r.config.command==="serve"){n("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let g=process.env.VITE_MULTI_PAGE_STRATEGY||"default";n(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${g}`),K(r,{entry:e.entry||"src/pages/**/*.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",strategies:e.strategies||{},pageConfigs:e.pageConfigs||{},devStrategy:g},n)}},writeBundle(r){if(!(e!=null&&e.merge)||e.merge==="all")return;let g=r.dir||"dist",d=e.merge;n(`\u5E94\u7528\u6784\u5EFA\u4EA7\u7269\u5408\u5E76\u6A21\u5F0F: ${d}`);try{oe(g,d,e,n)}catch(p){throw n("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",p),p}},buildEnd(){a.length>0&&(n(`\u6E05\u7406 ${a.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),a.forEach(r=>{try{u.existsSync(r)&&(u.unlinkSync(r),n(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${r}`))}catch(g){n(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${r}`,g)}}),a.length=0)}}}function be(t,e,a,n){return oe(t,e,a,n)}var $e=le;0&&(module.exports={cleanViteOutputDirectory,defineConfig,defineConfigTransform,generateBuildConfig,getAvailableStrategies,getViteOutputDirectory,mergeWithDefaults,reorganizeAssetsInCLI,viteMultiPage});
|
|
120
120
|
//# sourceMappingURL=index.js.map
|