@fchc8/vite-plugin-multi-page 1.9.2 → 1.9.3
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 +13 -13
- 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/README-EN.md
CHANGED
|
@@ -211,6 +211,8 @@ export default defineConfig({
|
|
|
211
211
|
- **`strategy`**: Group by strategy, e.g., `/dist/mobile/page1.html`, `/dist/desktop/page1.html`
|
|
212
212
|
- **`page`**: Group by page, e.g., `/dist/homePage/index.html`, `/dist/aboutPage/index.html`
|
|
213
213
|
|
|
214
|
+
> **Note**: When using `strategy` or `page` mode, static assets from the `public/` directory are automatically copied to each subdirectory to ensure correct asset paths.
|
|
215
|
+
|
|
214
216
|
### Page Strategy Assignment
|
|
215
217
|
|
|
216
218
|
Assign strategies to pages through the `pageConfigs` function:
|
package/README.md
CHANGED
|
@@ -211,6 +211,8 @@ export default defineConfig({
|
|
|
211
211
|
- **`strategy`**: 按策略分组,如 `/dist/mobile/page1.html`、`/dist/desktop/page1.html`
|
|
212
212
|
- **`page`**: 按页面分组,如 `/dist/homePage/index.html`、`/dist/aboutPage/index.html`
|
|
213
213
|
|
|
214
|
+
> **注意**: 使用 `strategy` 或 `page` 模式时,`public/` 目录中的静态资源会自动复制到每个子目录中,确保资源路径正确。
|
|
215
|
+
|
|
214
216
|
### 页面策略分配
|
|
215
217
|
|
|
216
218
|
通过 `pageConfigs` 函数为页面分配策略:
|
package/dist/cli.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var
|
|
2
|
+
"use strict";var Me=Object.create;var Y=Object.defineProperty;var De=Object.getOwnPropertyDescriptor;var je=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Ie=Object.prototype.hasOwnProperty;var O=(t,e)=>()=>(t&&(e=t(t=0)),e);var B=(t,e)=>{for(var r in e)Y(t,r,{get:e[r],enumerable:!0})},le=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of je(e))!Ie.call(t,n)&&n!==r&&Y(t,n,{get:()=>e[n],enumerable:!(s=De(e,n))||s.enumerable});return t};var w=(t,e,r)=>(r=t!=null?Me(Re(t)):{},le(e||!t||!t.__esModule?Y(r,"default",{value:t,enumerable:!0}):r,t)),Le=t=>le(Y({},"__esModule",{value:!0}),t);var $=O(()=>{"use strict"});function V(t,e,r,s){let n=[],a=new Map,c=e.replace(/\/\*.*$/,"");(!c||c===e)&&(c=j.dirname(e.split("*")[0]));let l=[];for(let i of t){if(r.includes(i))continue;let g=i.replace(/\\/g,"/"),u=c.replace(/\\/g,"/"),f=j.posix.relative(u,g).split("/");if(f.length===1){let p=f[0],d=j.posix.basename(p,j.posix.extname(p));l.push({name:d,file:i,priority:1})}else if(f.length>=2){let p=j.posix.basename(g,j.posix.extname(g)),d=f[0];p==="main"&&l.push({name:d,file:i,priority:2})}}for(let i of l){let g=a.get(i.name);g?i.priority>g.priority&&a.set(i.name,{file:i.file,priority:i.priority}):a.set(i.name,{file:i.file,priority:i.priority})}for(let[i,{file:g}]of a.entries())n.push({name:i,file:g});return n}var j,ee=O(()=>{"use strict";$();j=w(require("path"))});function R(t,e,r){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 r(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${e.pageName}:`,n),n;if(n.match&&(Array.isArray(n.match)?n.match:[n.match]).some(l=>z(l,e.pageName)||z(l,e.relativePath)||z(l,e.filePath)))return r(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${n.match}):`,n),{...n,match:void 0};if(z(s,e.pageName))return r(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${s}):`,n),n}return null}function z(t,e){let r=t.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${r}$`).test(e)}var te=O(()=>{"use strict";$()});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";$()});var ae={};B(ae,{cleanViteOutputDirectory:()=>ie,generateBuildConfig:()=>W,getAvailableStrategies:()=>oe,getViteOutputDirectory:()=>L});function W(t){var u;let{entry:e="src/pages/*/main.{ts,js}",exclude:r=[],template:s="index.html",placeholder:n="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:a={},pageConfigs:c={},forceBuildStrategy:l}=t,i=q(!0),g={};try{let o=re.glob.sync(e,{cwd:process.cwd()}),f=V(o,e,r,i);if(f.length===0)return i("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let p=new Map,d=new Map;for(let m of f){let x={pageName:m.name,filePath:m.file,relativePath:E.relative(process.cwd(),m.file)},S=R(c,x,i),P=(S==null?void 0:S.strategy)||"default";p.set(m.name,P),d.has(P)||d.set(P,[]),(u=d.get(P))==null||u.push(m.name)}if(i(`\u{1F4C4} \u53D1\u73B0 ${f.length} \u4E2A\u9875\u9762: ${f.map(m=>m.name).join(", ")}`),l){let m=d.get(l)||[];if(m.length===0)return i(`\u8B66\u544A: \u7B56\u7565 "${l}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};i(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${l}, \u9875\u9762: ${m.join(", ")}`);let x=ne(l,m,f,a[l],c,s,n,i);return g[l]=x,g}for(let[m,x]of d){if(x.length===0)continue;let S=a[m]||{},P=ne(m,x,f,S,c,s,n,i);g[m]=P}if(Object.keys(g).length===0){i("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let m=f.map(S=>S.name),x=ne("default",m,f,{},c,s,n,i);g.default=x}let b=Object.keys(g);return i(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${b.join(", ")}`),g}catch(o){throw i("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",o),o}}function ne(t,e,r,s,n,a,c,l){let i={},g=[],u={};for(let p of e){let d=r.find(Z=>Z.name===p);if(!d)continue;let b={pageName:p,filePath:d.file,relativePath:E.relative(process.cwd(),d.file),strategy:t},m=R(n,b,l);m!=null&&m.define&&Object.assign(u,m.define);let x=a,S=`${p}.html`;_.existsSync(E.resolve(process.cwd(),S))?x=S:m!=null&&m.template&&(x=m.template);let P=E.resolve(process.cwd(),x);if(!_.existsSync(P)){l(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${x}`);continue}let F=_.readFileSync(P,"utf-8");if(F.includes(c)){let Z=`./${d.file}`;F=F.replace(new RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),Z)}let k=E.resolve(process.cwd(),`.temp.mp.${p}.html`);_.writeFileSync(k,F),g.push(k),i[p]=k}let o={build:{rollupOptions:{input:i,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},emptyOutDir:!1},define:{}},f=o;return s&&(f=(0,ge.mergeConfig)(o,s)),Object.keys(u).length>0&&(f.define={...f.define,...u}),f.build||(f.build={}),f.build.rollupOptions||(f.build.rollupOptions={}),f.build.rollupOptions.input=i,f.build.emptyOutDir=!1,l(`\u7B56\u7565 "${t}" - ${e.length} \u4E2A\u9875\u9762`),f}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 r=t.find(s=>s.startsWith("--outDir="));if(r){let s=r.split("=")[1];return E.resolve(process.cwd(),s)}return E.resolve(process.cwd(),"dist")}function ie(t=[]){let e=L(t),r=q(!0);try{_.existsSync(e)&&(_.rmSync(e,{recursive:!0,force:!0}),r(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${E.relative(process.cwd(),e)}`))}catch(s){r(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,s)}}function oe(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:r=[],pageConfigs:s={}}=t,n=q(!1),a=new Set,c=re.glob.sync(e,{cwd:process.cwd()}),l=V(c,e,r,n);if(l.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let i of l){let g={pageName:i.name,filePath:i.file,relativePath:E.relative(process.cwd(),i.file)},u=R(s,g,n),o=(u==null?void 0:u.strategy)||"default";a.add(o)}return Array.from(a).sort()}catch(i){return n("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",i),["default"]}}var ge,re,E,_,A=O(()=>{"use strict";$();ge=require("vite"),re=require("glob"),E=w(require("path")),_=w(require("fs"));ee();te();se()});var ue={};B(ue,{hasCustomConfig:()=>J,loadUserConfig:()=>Q});function J(){for(let t of me){let e=I.resolve(process.cwd(),t);if(N.existsSync(e))return!0}return!1}async function Q(t){let e=await Ne();if(e){let r=e(t);return r||{}}return null}async function Ae(t){if(t.endsWith(".ts"))try{let e=await N.promises.readFile(t,"utf-8"),r;try{r=await import("esbuild")}catch{throw console.error(`
|
|
3
3
|
\u274C \u65E0\u6CD5\u52A0\u8F7D TypeScript \u914D\u7F6E\u6587\u4EF6\uFF0C\u56E0\u4E3A\u627E\u4E0D\u5230 esbuild \u4F9D\u8D56\u3002`),console.error(`
|
|
4
4
|
\u{1F4A1} \u8BF7\u9009\u62E9\u4EE5\u4E0B\u89E3\u51B3\u65B9\u6848\u4E4B\u4E00\uFF1A`),console.error(' 1. \u5B89\u88C5 esbuild (peerDependency)\uFF1Anpm install esbuild@">=0.19.3" --save-dev'),console.error(" 2. \u6216\u8005\u5982\u679C\u4F7F\u7528 Vite \u9879\u76EE\uFF0Cesbuild \u901A\u5E38\u5DF2\u5B89\u88C5\uFF0C\u8BF7\u68C0\u67E5\u7248\u672C\u662F\u5426 >=0.19.3"),console.error(" 3. \u4F7F\u7528 JavaScript \u914D\u7F6E\u6587\u4EF6\uFF1A\u5C06 multipage.config.ts \u91CD\u547D\u540D\u4E3A multipage.config.js"),console.error(` 4. \u4F7F\u7528 ESM \u914D\u7F6E\u6587\u4EF6\uFF1A\u5C06 multipage.config.ts \u91CD\u547D\u540D\u4E3A multipage.config.mjs
|
|
5
|
-
`),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${
|
|
6
|
-
`);
|
|
7
|
-
${
|
|
5
|
+
`),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${I.basename(t)}`)}let s=await r.transform(e,{loader:"ts",format:"cjs",target:"node16",sourcemap:!1}),n=new H.Module(t);return n.filename=t,n.paths=H.Module._nodeModulePaths(I.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 N.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(I.dirname(t)),n._compile(s,t),n.exports}if(t.endsWith(".js")||t.endsWith(".mjs"))return import(`${(0,fe.pathToFileURL)(t).href}?t=${Date.now()}`);throw new Error(`\u4E0D\u652F\u6301\u7684\u914D\u7F6E\u6587\u4EF6\u7C7B\u578B: ${t}`)}async function Ne(){let t=process.cwd();for(let e of me){let r=I.resolve(t,e);if(N.existsSync(r))try{let s=await Ae(r),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 N,I,fe,H,me,ce=O(()=>{"use strict";$();N=w(require("fs")),I=w(require("path")),fe=require("url"),H=require("module"),me=["multipage.config.js","multipage.config.mjs","multipage.config.ts"]});var de={};B(de,{DEFAULT_CONFIG:()=>T,isEmptyConfig:()=>Ue,mergeWithDefaults:()=>U});function U(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 Ue(t){if(Object.keys(t).length===0)return!0;let e=t.entry&&t.entry!==T.entry,r=t.strategies&&Object.keys(t.strategies).length>0,s=t.pageConfigs&&(typeof t.pageConfigs=="function"||Object.keys(t.pageConfigs).length>0);return!e&&!r&&!s}var T,K=O(()=>{"use strict";$();T={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,merge:"all",strategies:{default:{}},pageConfigs:{}}});function ke(t,e,r){try{let s=he.glob.sync(e.entry,{cwd:process.cwd()}),n=V(s,e.entry,e.exclude,r);if(n.length===0){r("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6");return}let a=e.devStrategy||t.config.__cliStrategy||t.config.strategy;a&&(r(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${a}`),n=n.filter(c=>{let l={pageName:c.name,filePath:c.file,relativePath:M.relative(process.cwd(),c.file),strategy:void 0,isMatched:!1},i=R(e.pageConfigs,l,r),g=(i==null?void 0:i.strategy)||"default";return a==="default"?g==="default":g===a}),r(`\u7B56\u7565 "${a}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${n.map(c=>c.name).join(", ")||"\u65E0"}`)),r("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",n),t.middlewares.use(async(c,l,i)=>{try{let u=(c.url||"").split("?")[0];if(u==="/"){let p=Ve(n,e,r);l.statusCode=200,l.setHeader("Content-Type","text/html"),l.end(p);return}if(u.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!u.endsWith(".html")||u.startsWith("/@")||u.includes("__vite")||u.startsWith("/node_modules"))return i();let o="";if(u.endsWith(".html"))o=M.basename(u,".html");else if(u.startsWith("/")){let p=u.substring(1);if(n.find(d=>d.name===p))o=p;else{let d=p.split("/");if(d.length>1){let b=d[0];n.find(m=>m.name===b)&&(o=b,r(`History \u8DEF\u7531\u5339\u914D: ${u} -> ${b}`))}}}if(!o)return i();let f=n.find(p=>p.name===o);return f?Be(l,f,e,r):i()}catch(g){r(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${g}`),i(g)}}),r("\u5F00\u53D1\u670D\u52A1\u5668\u914D\u7F6E\u5B8C\u6210")}catch(s){throw r(`\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668\u5931\u8D25: ${s}`),s}}function Be(t,e,r,s){var u;let n={pageName:e.name,filePath:e.file,relativePath:M.relative(process.cwd(),e.file),strategy:void 0,isMatched:!1},a=R(r.pageConfigs,n,s);if(a!=null&&a.strategy)n.strategy=a.strategy;else if((u=r.appliedStrategies)!=null&&u.has(e.name)){let o=r.appliedStrategies.get(e.name);o&&(n.strategy=o)}let c="",l=M.resolve(process.cwd(),`${e.name}.html`);if(G.existsSync(l)?c=l:a!=null&&a.template?c=M.resolve(process.cwd(),a.template):c=M.resolve(process.cwd(),r.template),!G.existsSync(c)){t.statusCode=404,t.end("Template not found");return}let i=G.readFileSync(c,"utf-8");if(i.includes(r.placeholder)){let o=i;if(i=i.split(r.placeholder).join(`/${e.file}`),i===o){let f=pe(r.placeholder),p=new RegExp(f,"g");i=o.replace(p,`/${e.file}`),i===o&&(i=o.replace(/\{\{ENTRY_FILE\}\}/g,`/${e.file}`))}}if(a!=null&&a.define){let o=Object.entries(a.define).map(([f,p])=>{let d=typeof p=="string"?`"${p}"`:JSON.stringify(p);return`window.${f} = ${d};`}).join(`
|
|
6
|
+
`);o&&(i=i.replace(/<\/head>/i,`<script type="text/javascript">
|
|
7
|
+
${o}
|
|
8
8
|
</script>
|
|
9
|
-
</head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(
|
|
9
|
+
</head>`))}t.statusCode=200,t.setHeader("Content-Type","text/html"),t.end(i)}function Ve(t,e,r){try{let s=t.map(n=>{var g;let a={pageName:n.name,filePath:n.file,relativePath:M.relative(process.cwd(),n.file),strategy:void 0,isMatched:!1},c=R(e.pageConfigs,a,r),l="default";if(c!=null&&c.strategy)l=c.strategy;else if((g=e.appliedStrategies)!=null&&g.has(n.name)){let u=e.appliedStrategies.get(n.name);u&&(l=u)}let i=l!=="default"?`<span class="badge">${l}</span>`:"";return`
|
|
10
10
|
<div class="page-item">
|
|
11
11
|
<a href="${n.name}.html" class="page-link">
|
|
12
|
-
${n.name}${
|
|
12
|
+
${n.name}${i}
|
|
13
13
|
</a>
|
|
14
14
|
<div class="page-path">${n.file}</div>
|
|
15
15
|
</div>`}).join("");return`
|
|
@@ -91,7 +91,7 @@ ${p}
|
|
|
91
91
|
</div>
|
|
92
92
|
</body>
|
|
93
93
|
</html>
|
|
94
|
-
`}catch(s){return
|
|
94
|
+
`}catch(s){return r(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${s}`),`
|
|
95
95
|
<!DOCTYPE html>
|
|
96
96
|
<html>
|
|
97
97
|
<head>
|
|
@@ -102,7 +102,7 @@ ${p}
|
|
|
102
102
|
<p>${s}</p>
|
|
103
103
|
</body>
|
|
104
104
|
</html>
|
|
105
|
-
`}}var
|
|
105
|
+
`}}var M,G,he,ye,xe=O(()=>{"use strict";$();M=w(require("path")),G=w(require("fs")),he=require("glob");ee();se();te();ye=ke});function ve(t){return typeof t=="function"?t:()=>t}function be(t){return t}var Ce=O(()=>{"use strict";$()});var Fe={};B(Fe,{cleanViteOutputDirectory:()=>ie,default:()=>He,defineConfig:()=>ve,defineConfigTransform:()=>be,generateBuildConfig:()=>W,getAvailableStrategies:()=>oe,getViteOutputDirectory:()=>L,mergeWithDefaults:()=>U,reorganizeAssetsInCLI:()=>We,viteMultiPage:()=>Pe});function we(t,e,r,s){let n=v.resolve(t,"assets");if(!h.existsSync(n)){s("assets\u76EE\u5F55\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u91CD\u7EC4");return}let a=h.readdirSync(t).filter(o=>o.endsWith(".html")).map(o=>v.resolve(t,o));if(a.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(o){s("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",o)}return}let c=new Map,l=new Map;a.forEach(o=>{var P;let f=v.basename(o,".html");f.startsWith(".temp.mp.")&&(f=f.replace(".temp.mp.",""));let p=h.readFileSync(o,"utf-8"),d=[],b=/(?:src|href)="\/assets\/([^"]+)"/g,m;for(;(m=b.exec(p))!==null;){let F=m[1];d.push(F),l.has(F)||l.set(F,[]),(P=l.get(F))==null||P.push(f)}let x="";e==="strategy"?x="default":e==="page"&&(x=f);let S=v.resolve(t,x);c.set(f,{assets:d,targetDir:S}),s(`\u9875\u9762 ${f} \u4F9D\u8D56\u8D44\u6E90:`,d)}),s("\u7B2C\u4E00\u9636\u6BB5\u8865\u5145\uFF1A\u5206\u6790public\u76EE\u5F55\u8D44\u6E90");let i=new Set,g=v.resolve(process.cwd(),"public");if(h.existsSync(g)){let o=Se.sync("**/*",{cwd:g,nodir:!0});for(let f of o)i.add(f),s(`\u53D1\u73B0public\u8D44\u6E90: ${f}`)}l.forEach((o,f)=>{o.length>1?s(`\u5171\u4EAB\u8D44\u6E90 ${f} \u88AB\u9875\u9762\u4F7F\u7528:`,o):s(`\u72EC\u5360\u8D44\u6E90 ${f} \u4EC5\u88AB\u9875\u9762 ${o[0]} \u4F7F\u7528`)}),c.forEach(({assets:o,targetDir:f},p)=>{let d=v.resolve(f,"assets");h.existsSync(d)||h.mkdirSync(d,{recursive:!0}),o.forEach(b=>{let m=v.resolve(n,b),x=v.resolve(d,b);h.existsSync(m)?(h.copyFileSync(m,x),s(`\u590D\u5236\u8D44\u6E90\u6587\u4EF6\u5230 ${p}: assets/${b} -> ${v.relative(t,x)}`)):s(`\u8B66\u544A: \u8D44\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728: ${m}`)})}),s("\u7B2C\u4E09\u9636\u6BB5\u8865\u5145\uFF1A\u5904\u7406public\u76EE\u5F55\u8D44\u6E90");let u=new Set;c.forEach(({targetDir:o})=>{u.add(o)});for(let o of u)for(let f of i){let p=v.resolve(t,f),d=v.resolve(o,f);if(h.existsSync(p)){let b=v.dirname(d);h.existsSync(b)||h.mkdirSync(b,{recursive:!0}),h.copyFileSync(p,d),s(`\u590D\u5236public\u8D44\u6E90: ${f} -> ${v.relative(t,d)}`)}}if(c.forEach(({targetDir:o},f)=>{let p=v.resolve(t,`${f}.html`),d=f;if(h.existsSync(p)||(p=v.resolve(t,`.temp.mp.${f}.html`),h.existsSync(p)&&(d=f)),h.existsSync(p)){let b=h.readFileSync(p,"utf-8");b=b.replace(/(?:src|href)="\/assets\//g,S=>S.replace("/assets/","./assets/"));let m;e==="strategy"?m=v.resolve(o,`${d}.html`):e==="page"?m=v.resolve(o,"index.html"):m=p,h.writeFileSync(m,b),m!==p&&h.unlinkSync(p);let x=v.relative(t,m);s(`\u6309${e}\u5206\u7EC4\u79FB\u52A8HTML\u6587\u4EF6: ${d}.html -> ${x}`)}else s(`\u8B66\u544A: \u672A\u627E\u5230HTML\u6587\u4EF6: ${f}.html \u6216 .temp.mp.${f}.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(o){s("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",o)}else{l.forEach((f,p)=>{let d=v.resolve(n,p);h.existsSync(d)&&(h.unlinkSync(d),s(`\u6E05\u7406\u539F\u59CB\u8D44\u6E90\u6587\u4EF6: assets/${p}`))});let o=h.readdirSync(n);o.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:",o)}(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(o=>{let f=v.resolve(t,o);if(h.existsSync(f))try{h.unlinkSync(f),s(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90: ${o}`)}catch(p){s(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90\u5931\u8D25: ${o}`,p)}}),i.forEach(o=>{let f=v.resolve(t,o),p=v.dirname(f);for(;p!==t&&p!==v.dirname(p);)try{if(h.existsSync(p)&&h.readdirSync(p).length===0)h.rmdirSync(p),s(`\u5220\u9664\u7A7A\u76EE\u5F55: ${v.relative(t,p)}`),p=v.dirname(p);else break}catch{break}}))}function Pe(t){let e,r=[],s=()=>{};return{name:"vite-multi-page",async configResolved(n){let a=null;J()&&(a=await Q({mode:n.command==="serve"?"development":"production",command:n.command,isCLI:!1}));let c=U(a);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:a}){var c;if(a==="serve"){let l=process.argv,i=l.find(g=>g.startsWith("--strategy="));if(i){let g=i.split("=")[1];g&&(process.env.VITE_MULTI_PAGE_STRATEGY=g)}else{let g=l.findIndex(u=>u==="--strategy");if(g!==-1&&g+1<l.length){let u=l[g+1];process.env.VITE_MULTI_PAGE_STRATEGY=u}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(a==="build"){if(!e){let u=null;J()&&(u=await Q({mode:"production",command:"build",isCLI:!1}));let o=U(u);e=t?t(o,{mode:"production",command:"build",isCLI:!1}):o,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,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:l}),g=Object.keys(i)[0];if(g&&i[g]){s(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${g}`);let u=i[g],o=(0,$e.mergeConfig)(n,u);Object.assign(n,o),s(`\u5DF2\u5E94\u7528\u7B56\u7565 "${g}" \u7684\u914D\u7F6E:`,{build:!!u.build,define:!!u.define,plugins:((c=u.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
|
|
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 a=process.env.VITE_MULTI_PAGE_STRATEGY||"default";s(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${a}`),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:a},s)}},writeBundle(n){if(!(e!=null&&e.merge)||e.merge==="all")return;let a=n.dir||"dist",c=e.merge;s(`\u5E94\u7528\u6784\u5EFA\u4EA7\u7269\u5408\u5E76\u6A21\u5F0F: ${c}`);try{
|
|
120
|
+
});`)}},configureServer(n){if(n.config.command==="serve"){s("\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668");let a=process.env.VITE_MULTI_PAGE_STRATEGY||"default";s(`\u5F00\u53D1\u6A21\u5F0F\u7B56\u7565: ${a}`),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:a},s)}},writeBundle(n){if(!(e!=null&&e.merge)||e.merge==="all")return;let a=n.dir||"dist",c=e.merge;s(`\u5E94\u7528\u6784\u5EFA\u4EA7\u7269\u5408\u5E76\u6A21\u5F0F: ${c}`);try{we(a,c,e,s)}catch(l){throw s("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",l),l}},buildEnd(){r.length>0&&(s(`\u6E05\u7406 ${r.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),r.forEach(n=>{try{h.existsSync(n)&&(h.unlinkSync(n),s(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${n}`))}catch(a){s(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${n}`,a)}}),r.length=0)}}}function We(t,e,r,s){return we(t,e,r,s)}var h,v,$e,Se,He,Ee=O(()=>{"use strict";$();h=w(require("fs")),v=w(require("path")),$e=require("vite");xe();A();ce();K();Se=w(require("glob"));Ce();A();K();He=Pe});var Xe={};B(Xe,{buildAll:()=>_e});module.exports=Le(Xe);$();var Te=require("child_process"),y=w(require("fs")),C=w(require("path")),X=w(require("glob"));A();function Ge(){let t=process.argv.slice(2),e=[],r=!1,s,n;for(let a=0;a<t.length;a++){let c=t[a];c==="--debug"?r=!0:c==="--cwd"?s=t[++a]:c==="--strategy"?n=t[++a].split(",").map(i=>i.trim()):c==="--help"||c==="-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)):c!=="build"&&e.push(c)}return{viteBuildArgs:e,debug:
|
|
139
|
-
\u53EF\u7528\u7B56\u7565: ${l.join(", ")}`);
|
|
140
|
-
\u{1F4CA} \u6784\u5EFA\u7ED3\u679C\u7EDF\u8BA1:`),console.log(`\u2705 \u6210\u529F: ${
|
|
141
|
-
\u274C \u5931\u8D25\u7684\u7B56\u7565:`),
|
|
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: ${b.join(", ")}`),console.log(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${
|
|
138
|
+
`),process.exit(0)):c!=="build"&&e.push(c)}return{viteBuildArgs:e,debug:r,cwd:s,strategies:n}}async function Ye(){let{loadUserConfig:t,hasCustomConfig:e}=await Promise.resolve().then(()=>(ce(),ue)),{mergeWithDefaults:r}=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"),r(s)}function ze(t,e,r){return new Promise(s=>{var g;let n=r?console.log.bind(console,`[${t}]`):()=>{};n(`\u5F00\u59CB\u6784\u5EFA\u7B56\u7565: ${t}`);let a={...process.env,VITE_MULTI_PAGE_STRATEGY:t},c=["build",...e];n(`\u6267\u884C\u547D\u4EE4: npx vite ${c.join(" ")}`);let l=(0,Te.spawn)("npx",["vite",...c],{stdio:r?"inherit":"pipe",env:a,cwd:process.cwd()}),i="";r||(g=l.stderr)==null||g.on("data",u=>{i+=u.toString()}),l.on("close",u=>{let o=u===0,f=L(e);if(o){n(`\u2705 \u7B56\u7565 ${t} \u6784\u5EFA\u6210\u529F`);try{if(y.existsSync(f)){let p=y.readdirSync(f);for(let d of p)if(d.startsWith(".temp.mp.")&&d.endsWith(".html")){let b=C.resolve(f,d),x=`${d.replace(/^\.temp\.mp\./,"").replace(/\.html$/,"")}.html`,S=C.resolve(f,x);y.renameSync(b,S),n(`\u91CD\u547D\u540DHTML: ${d} -> ${x}`)}}}catch(p){n("\u91CD\u547D\u540DHTML\u6587\u4EF6\u5931\u8D25:",p)}}else n(`\u274C \u7B56\u7565 ${t} \u6784\u5EFA\u5931\u8D25 (\u9000\u51FA\u7801: ${u})`),!r&&i&&console.error(`\u7B56\u7565 ${t} \u9519\u8BEF\u8F93\u51FA:`,i);s({strategy:t,success:o,error:o?void 0:i||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${u}`,outputDir:f})}),l.on("error",u=>{n(`\u274C \u7B56\u7565 ${t} \u6784\u5EFA\u51FA\u9519:`,u.message);let o=L(e);s({strategy:t,success:!1,error:u.message,outputDir:o})})})}async function qe(t,e,r){let s=r?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,r):await Je(t,e,r)}async function Oe(t,e){let r=e?console.log.bind(console,"[merge]"):()=>{},s=C.resolve(process.cwd(),"dist"),n=C.resolve(s,"assets");y.existsSync(n)||y.mkdirSync(n,{recursive:!0});let a=[];for(let c of t){if(!c.success)continue;let l=C.resolve(s,c.strategy);if(!y.existsSync(l)){r(`\u8B66\u544A: \u7B56\u7565\u76EE\u5F55\u4E0D\u5B58\u5728: ${l}`);continue}r(`\u5904\u7406\u7B56\u7565: ${c.strategy}`);let i=y.readdirSync(l,{withFileTypes:!0});for(let g of i){let u=C.resolve(l,g.name);if(g.isFile())if(g.name.endsWith(".html")){let o=C.resolve(s,g.name);y.copyFileSync(u,o),a.push(g.name),r(`\u590D\u5236HTML: ${g.name} -> dist/${g.name}`)}else{let o=C.resolve(s,g.name);y.copyFileSync(u,o),r(`\u590D\u5236\u6587\u4EF6: ${g.name} -> dist/${g.name}`)}else if(g.isDirectory()&&g.name==="assets"){let o=u,f=y.readdirSync(o,{withFileTypes:!0});for(let p of f){let d=C.resolve(o,p.name),b=C.resolve(n,p.name);if(p.isFile())if(y.existsSync(b)){let m=y.readFileSync(d),x=y.readFileSync(b);if(m.equals(x))r(`\u8DF3\u8FC7\u91CD\u590D\u8D44\u6E90: ${p.name}`);else{let S=C.extname(p.name),F=`${C.basename(p.name,S)}-${c.strategy}${S}`,k=C.resolve(n,F);y.copyFileSync(d,k),r(`\u590D\u5236\u8D44\u6E90(\u91CD\u547D\u540D): ${p.name} -> assets/${F}`)}}else y.copyFileSync(d,b),r(`\u590D\u5236\u8D44\u6E90: ${p.name} -> assets/${p.name}`);else if(p.isDirectory()){let m=C.resolve(n,p.name);y.existsSync(m)||y.mkdirSync(m,{recursive:!0}),y.cpSync(d,m,{recursive:!0}),r(`\u590D\u5236\u8D44\u6E90\u76EE\u5F55: ${p.name} -> assets/${p.name}`)}}}else if(g.isDirectory()){let o=C.resolve(s,g.name);y.cpSync(u,o,{recursive:!0}),r(`\u590D\u5236\u76EE\u5F55: ${g.name} -> dist/${g.name}`)}}}r("\u2705 \u6784\u5EFA\u7ED3\u679C\u5408\u5E76\u5B8C\u6210"),r(`\u{1F4C1} \u751F\u6210\u9875\u9762: ${a.join(", ")}`),r("\u{1F4E6} \u8D44\u6E90\u76EE\u5F55: dist/assets/"),r(`\u{1F527} \u5904\u7406\u7B56\u7565: ${t.filter(c=>c.success).map(c=>c.strategy).join(", ")}`)}async function Je(t,e,r){let s=r?console.log.bind(console,"[merge]"):()=>{};await Oe(t,r);let n=C.resolve(process.cwd(),"dist"),a=e.merge;s(`\u5E94\u7528${a}\u6A21\u5F0F\u7684\u8D44\u6E90\u91CD\u7EC4...`);try{let{reorganizeAssetsInCLI:c}=await Promise.resolve().then(()=>(Ee(),Fe));await c(n,a,e,s),s(`\u2705 ${a}\u6A21\u5F0F\u8D44\u6E90\u91CD\u7EC4\u5B8C\u6210`)}catch(c){throw s("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",c),c}}async function Qe(t){let e=t?console.log.bind(console,"[cleanup]"):()=>{};e("\u6E05\u7406\u4E34\u65F6HTML\u6587\u4EF6...");let r=X.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let s of r){let n=C.resolve(process.cwd(),s);try{y.unlinkSync(n),e(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${s}`)}catch(a){e(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${s}`,a)}}r.length===0?e("\u6CA1\u6709\u627E\u5230\u4E34\u65F6\u6587\u4EF6"):e(`\u2705 \u6E05\u7406\u4E86 ${r.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`)}async function Ke(t,e,r){let s=r?console.log.bind(console,"[cleanup]"):()=>{};s("\u6E05\u7406\u4E34\u65F6\u6587\u4EF6...");let n=e.merge||"all",a=X.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let c of a){let l=C.resolve(process.cwd(),c);try{y.unlinkSync(l),s(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6: ${c}`)}catch(i){s(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${c}`,i)}}for(let c of t){let l=C.resolve(process.cwd(),"dist",c);if(y.existsSync(l)){let i=X.sync("*.mp.temp.html",{cwd:l});for(let g of i){let u=C.resolve(l,g);try{y.unlinkSync(u),s(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6: ${c}/${g}`)}catch(o){s(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${c}/${g}`,o)}}}}if(n==="all"){let c=C.resolve(process.cwd(),"dist");for(let l of t){let i=C.resolve(c,l);if(y.existsSync(i))try{y.rmSync(i,{recursive:!0,force:!0}),s(`\u5220\u9664\u7B56\u7565\u76EE\u5F55: ${l}`)}catch(g){s(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u5931\u8D25: ${l}`,g)}}}else s(`\u4FDD\u7559\u7B56\u7565\u76EE\u5F55 (merge\u6A21\u5F0F: ${n})`);s("\u2705 \u6E05\u7406\u5B8C\u6210")}async function _e(){let{viteBuildArgs:t,debug:e,cwd:r,strategies:s}=Ge(),n=e?console.log.bind(console,"[main]"):()=>{};if(r){let a=C.resolve(process.cwd(),r);y.existsSync(a)||(console.error(`\u274C \u6307\u5B9A\u7684\u76EE\u5F55\u4E0D\u5B58\u5728: ${a}`),process.exit(1)),process.chdir(a),n(`\u5207\u6362\u5DE5\u4F5C\u76EE\u5F55\u5230: ${a}`)}try{n("\u{1F680} \u5F00\u59CB\u591A\u7B56\u7565\u6784\u5EFA..."),n("\u{1F4CB} \u52A0\u8F7D\u914D\u7F6E...");let a=await Ye(),{getAvailableStrategies:c}=await Promise.resolve().then(()=>(A(),ae)),l=c({entry:a.entry||"src/pages/*/main.{ts,js}",exclude:a.exclude||[],template:a.template||"index.html",placeholder:a.placeholder||"{{ENTRY_FILE}}",pageConfigs:a.pageConfigs||{},strategies:a.strategies||{}});if(l.length===0)throw new Error("\u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565");let i;if(s&&s.length>0){let m=s.filter(x=>!l.includes(x));if(m.length>0)throw new Error(`\u6307\u5B9A\u7684\u7B56\u7565\u4E0D\u5B58\u5728: ${m.join(", ")}
|
|
139
|
+
\u53EF\u7528\u7B56\u7565: ${l.join(", ")}`);i=s,n(`\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${i.join(", ")}`)}else i=l,n(`\u6784\u5EFA\u6240\u6709\u53EF\u7528\u7B56\u7565: ${i.join(", ")}`);n("\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55...");let{cleanViteOutputDirectory:g}=await Promise.resolve().then(()=>(A(),ae));g(t),n("\u{1F528} \u5F00\u59CB\u5E76\u884C\u6784\u5EFA...");let u=i.map(m=>ze(m,t,e)),o=await Promise.all(u),f=o.filter(m=>m.success).length,p=o.length-f;console.log(`
|
|
140
|
+
\u{1F4CA} \u6784\u5EFA\u7ED3\u679C\u7EDF\u8BA1:`),console.log(`\u2705 \u6210\u529F: ${f}`),console.log(`\u274C \u5931\u8D25: ${p}`),p>0&&(console.log(`
|
|
141
|
+
\u274C \u5931\u8D25\u7684\u7B56\u7565:`),o.filter(m=>!m.success).forEach(m=>{console.log(` - ${m.strategy}: ${m.error}`)}),await Qe(e),process.exit(1)),n("\u{1F4E6} \u5408\u5E76\u6784\u5EFA\u7ED3\u679C..."),await qe(o,a,e),await Ke(i,a,e);let d=o.filter(m=>m.success),b=y.readdirSync(C.resolve(process.cwd(),"dist")).filter(m=>m.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: ${b.join(", ")}`),console.log(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${d.map(m=>m.strategy).join(", ")}`)}catch(a){console.error("\u274C \u6784\u5EFA\u5931\u8D25:",a instanceof Error?a.message:a),process.exit(1)}}require.main===module&&_e().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
|
|
2
|
-
`);
|
|
3
|
-
${
|
|
1
|
+
"use strict";var ce=Object.create;var L=Object.defineProperty;var ge=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var fe=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty;var ue=(t,e)=>{for(var i in e)L(t,i,{get:e[i],enumerable:!0})},q=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of pe(e))!me.call(t,r)&&r!==i&&L(t,r,{get:()=>e[r],enumerable:!(n=ge(e,r))||n.enumerable});return t};var P=(t,e,i)=>(i=t!=null?ce(fe(t)):{},q(e||!t||!t.__esModule?L(i,"default",{value:t,enumerable:!0}):i,t)),de=t=>q(L({},"__esModule",{value:!0}),t);var Pe={};ue(Pe,{cleanViteOutputDirectory:()=>Z,default:()=>Se,defineConfig:()=>re,defineConfigTransform:()=>se,generateBuildConfig:()=>U,getAvailableStrategies:()=>ee,getViteOutputDirectory:()=>H,mergeWithDefaults:()=>N,reorganizeAssetsInCLI:()=>be,viteMultiPage:()=>le});module.exports=de(Pe);var d=P(require("fs")),h=P(require("path")),ie=require("vite");var $=P(require("path")),R=P(require("fs")),Q=require("glob");var O=P(require("path"));function I(t,e,i,n){let r=[],g=new Map,f=e.replace(/\/\*.*$/,"");(!f||f===e)&&(f=O.dirname(e.split("*")[0]));let c=[];for(let s of t){if(i.includes(s))continue;let p=s.replace(/\\/g,"/"),m=f.replace(/\\/g,"/"),o=O.posix.relative(m,p).split("/");if(o.length===1){let l=o[0],y=O.posix.basename(l,O.posix.extname(l));c.push({name:y,file:s,priority:1})}else if(o.length>=2){let l=O.posix.basename(p,O.posix.extname(p)),y=o[0];l==="main"&&c.push({name:y,file:s,priority:2})}}for(let s of c){let p=g.get(s.name);p?s.priority>p.priority&&g.set(s.name,{file:s.file,priority:s.priority}):g.set(s.name,{file:s.file,priority:s.priority})}for(let[s,{file:p}]of g.entries())r.push({name:s,file:p});return r}function J(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function k(t){return(...e)=>{t&&console.log("[vite-plugin-multi-page]",...e)}}function _(t,e,i){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 i(`\u7CBE\u786E\u5339\u914D\u9875\u9762 ${e.pageName}:`,r),r;if(r.match&&(Array.isArray(r.match)?r.match:[r.match]).some(c=>A(c,e.pageName)||A(c,e.relativePath)||A(c,e.filePath)))return i(`\u6A21\u5F0F\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${r.match}):`,r),{...r,match:void 0};if(A(n,e.pageName))return i(`Glob\u5339\u914D\u9875\u9762 ${e.pageName} (\u6A21\u5F0F: ${n}):`,r),r}return null}function A(t,e){let i=t.replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*");return new RegExp(`^${i}$`).test(e)}function ye(t,e,i){try{let n=Q.glob.sync(e.entry,{cwd:process.cwd()}),r=I(n,e.entry,e.exclude,i);if(r.length===0){i("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6");return}let g=e.devStrategy||t.config.__cliStrategy||t.config.strategy;g&&(i(`\u5F00\u53D1\u670D\u52A1\u5668\u4F7F\u7528\u6307\u5B9A\u7684\u7B56\u7565: ${g}`),r=r.filter(f=>{let c={pageName:f.name,filePath:f.file,relativePath:$.relative(process.cwd(),f.file),strategy:void 0,isMatched:!1},s=_(e.pageConfigs,c,i),p=(s==null?void 0:s.strategy)||"default";return g==="default"?p==="default":p===g}),i(`\u7B56\u7565 "${g}" \u4E0B\u53EF\u7528\u7684\u9875\u9762: ${r.map(f=>f.name).join(", ")||"\u65E0"}`)),i("\u5F00\u53D1\u670D\u52A1\u5668\u5E94\u7528\u7684\u5165\u53E3\u6587\u4EF6:",r),t.middlewares.use(async(f,c,s)=>{try{let m=(f.url||"").split("?")[0];if(m==="/"){let l=xe(r,e,i);c.statusCode=200,c.setHeader("Content-Type","text/html"),c.end(l);return}if(m.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|map)$/)&&!m.endsWith(".html")||m.startsWith("/@")||m.includes("__vite")||m.startsWith("/node_modules"))return s();let a="";if(m.endsWith(".html"))a=$.basename(m,".html");else if(m.startsWith("/")){let l=m.substring(1);if(r.find(y=>y.name===l))a=l;else{let y=l.split("/");if(y.length>1){let C=y[0];r.find(u=>u.name===C)&&(a=C,i(`History \u8DEF\u7531\u5339\u914D: ${m} -> ${C}`))}}}if(!a)return s();let o=r.find(l=>l.name===a);return o?he(c,o,e,i):s()}catch(p){i(`\u5F00\u53D1\u670D\u52A1\u5668\u5904\u7406\u8BF7\u6C42\u5931\u8D25: ${p}`),s(p)}}),i("\u5F00\u53D1\u670D\u52A1\u5668\u914D\u7F6E\u5B8C\u6210")}catch(n){throw i(`\u914D\u7F6E\u5F00\u53D1\u670D\u52A1\u5668\u5931\u8D25: ${n}`),n}}function he(t,e,i,n){var m;let r={pageName:e.name,filePath:e.file,relativePath:$.relative(process.cwd(),e.file),strategy:void 0,isMatched:!1},g=_(i.pageConfigs,r,n);if(g!=null&&g.strategy)r.strategy=g.strategy;else if((m=i.appliedStrategies)!=null&&m.has(e.name)){let a=i.appliedStrategies.get(e.name);a&&(r.strategy=a)}let f="",c=$.resolve(process.cwd(),`${e.name}.html`);if(R.existsSync(c)?f=c:g!=null&&g.template?f=$.resolve(process.cwd(),g.template):f=$.resolve(process.cwd(),i.template),!R.existsSync(f)){t.statusCode=404,t.end("Template not found");return}let s=R.readFileSync(f,"utf-8");if(s.includes(i.placeholder)){let a=s;if(s=s.split(i.placeholder).join(`/${e.file}`),s===a){let o=J(i.placeholder),l=new RegExp(o,"g");s=a.replace(l,`/${e.file}`),s===a&&(s=a.replace(/\{\{ENTRY_FILE\}\}/g,`/${e.file}`))}}if(g!=null&&g.define){let a=Object.entries(g.define).map(([o,l])=>{let y=typeof l=="string"?`"${l}"`:JSON.stringify(l);return`window.${o} = ${y};`}).join(`
|
|
2
|
+
`);a&&(s=s.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(s)}var K=ye;function xe(t,e,i){try{let n=t.map(r=>{var p;let g={pageName:r.name,filePath:r.file,relativePath:$.relative(process.cwd(),r.file),strategy:void 0,isMatched:!1},f=_(e.pageConfigs,g,i),c="default";if(f!=null&&f.strategy)c=f.strategy;else if((p=e.appliedStrategies)!=null&&p.has(r.name)){let m=e.appliedStrategies.get(r.name);m&&(c=m)}let s=c!=="default"?`<span class="badge">${c}</span>`:"";return`
|
|
6
6
|
<div class="page-item">
|
|
7
|
-
<a href="${
|
|
8
|
-
${
|
|
7
|
+
<a href="${r.name}.html" class="page-link">
|
|
8
|
+
${r.name}${s}
|
|
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 @@ ${p}
|
|
|
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 i(`\u751F\u6210\u7D22\u5F15\u9875\u5931\u8D25: ${n}`),`
|
|
91
91
|
<!DOCTYPE html>
|
|
92
92
|
<html>
|
|
93
93
|
<head>
|
|
@@ -95,13 +95,13 @@ ${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>${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")),w=P(require("fs"));function U(t){var m;let{entry:e="src/pages/*/main.{ts,js}",exclude:i=[],template:n="index.html",placeholder:r="<!--VITE_MULTI_PAGE_ENTRY-->",strategies:g={},pageConfigs:f={},forceBuildStrategy:c}=t,s=k(!0),p={};try{let a=G.glob.sync(e,{cwd:process.cwd()}),o=I(a,e,i,s);if(o.length===0)return s("\u8B66\u544A: \u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6"),{};let l=new Map,y=new Map;for(let u of o){let x={pageName:u.name,filePath:u.file,relativePath:S.relative(process.cwd(),u.file)},v=_(f,x,s),b=(v==null?void 0:v.strategy)||"default";l.set(u.name,b),y.has(b)||y.set(b,[]),(m=y.get(b))==null||m.push(u.name)}if(s(`\u{1F4C4} \u53D1\u73B0 ${o.length} \u4E2A\u9875\u9762: ${o.map(u=>u.name).join(", ")}`),c){let u=y.get(c)||[];if(u.length===0)return s(`\u8B66\u544A: \u7B56\u7565 "${c}" \u4E0B\u6CA1\u6709\u9875\u9762`),{};s(`\u5F3A\u5236\u6784\u5EFA\u7B56\u7565: ${c}, \u9875\u9762: ${u.join(", ")}`);let x=W(c,u,o,g[c],f,n,r,s);return p[c]=x,p}for(let[u,x]of y){if(x.length===0)continue;let v=g[u]||{},b=W(u,x,o,v,f,n,r,s);p[u]=b}if(Object.keys(p).length===0){s("\u8B66\u544A: \u672A\u751F\u6210\u4EFB\u4F55\u6784\u5EFA\u914D\u7F6E\uFF0C\u521B\u5EFA\u9ED8\u8BA4\u914D\u7F6E");let u=o.map(v=>v.name),x=W("default",u,o,{},f,n,r,s);p.default=x}let C=Object.keys(p);return s(`\u{1F4E6} \u6784\u5EFA\u7B56\u7565: ${C.join(", ")}`),p}catch(a){throw s("\u751F\u6210\u6784\u5EFA\u914D\u7F6E\u5931\u8D25:",a),a}}function W(t,e,i,n,r,g,f,c){let s={},p=[],m={};for(let l of e){let y=i.find(B=>B.name===l);if(!y)continue;let C={pageName:l,filePath:y.file,relativePath:S.relative(process.cwd(),y.file),strategy:t},u=_(r,C,c);u!=null&&u.define&&Object.assign(m,u.define);let x=g,v=`${l}.html`;w.existsSync(S.resolve(process.cwd(),v))?x=v:u!=null&&u.template&&(x=u.template);let b=S.resolve(process.cwd(),x);if(!w.existsSync(b)){c(`\u8B66\u544A: \u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ${x}`);continue}let E=w.readFileSync(b,"utf-8");if(E.includes(f)){let B=`./${y.file}`;E=E.replace(new RegExp(f.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),B)}let V=S.resolve(process.cwd(),`.temp.mp.${l}.html`);w.writeFileSync(V,E),p.push(V),s[l]=V}let a={build:{rollupOptions:{input:s,output:{entryFileNames:"assets/[name]-[hash].js",chunkFileNames:"assets/[name]-[hash].js",assetFileNames:"assets/[name]-[hash][extname]"}},emptyOutDir:!1},define:{}},o=a;return n&&(o=(0,X.mergeConfig)(a,n)),Object.keys(m).length>0&&(o.define={...o.define,...m}),o.build||(o.build={}),o.build.rollupOptions||(o.build.rollupOptions={}),o.build.rollupOptions.input=s,o.build.emptyOutDir=!1,c(`\u7B56\u7565 "${t}" - ${e.length} \u4E2A\u9875\u9762`),o}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 i=t.find(n=>n.startsWith("--outDir="));if(i){let n=i.split("=")[1];return S.resolve(process.cwd(),n)}return S.resolve(process.cwd(),"dist")}function Z(t=[]){let e=H(t),i=k(!0);try{w.existsSync(e)&&(w.rmSync(e,{recursive:!0,force:!0}),i(`\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55: ${S.relative(process.cwd(),e)}`))}catch(n){i(`\u26A0\uFE0F \u6E05\u7406\u8F93\u51FA\u76EE\u5F55\u5931\u8D25: ${e}`,n)}}function ee(t){let{entry:e="src/pages/*/main.{ts,js}",exclude:i=[],pageConfigs:n={}}=t,r=k(!1),g=new Set,f=G.glob.sync(e,{cwd:process.cwd()}),c=I(f,e,i,r);if(c.length===0)throw new Error(`\u672A\u627E\u5230\u5339\u914D\u7684\u5165\u53E3\u6587\u4EF6: ${e}`);try{for(let s of c){let p={pageName:s.name,filePath:s.file,relativePath:S.relative(process.cwd(),s.file)},m=_(n,p,r),a=(m==null?void 0:m.strategy)||"default";g.add(a)}return Array.from(g).sort()}catch(s){return r("\u83B7\u53D6\u53EF\u7528\u7B56\u7565\u5931\u8D25:",s),["default"]}}var j=P(require("fs")),M=P(require("path")),te=require("url"),D=require("module"),ne=["multipage.config.js","multipage.config.mjs","multipage.config.ts"];function Y(){for(let t of ne){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 i=e(t);return i||{}}return null}async function Ce(t){if(t.endsWith(".ts"))try{let e=await j.promises.readFile(t,"utf-8"),i;try{i=await import("esbuild")}catch{throw console.error(`
|
|
102
102
|
\u274C \u65E0\u6CD5\u52A0\u8F7D TypeScript \u914D\u7F6E\u6587\u4EF6\uFF0C\u56E0\u4E3A\u627E\u4E0D\u5230 esbuild \u4F9D\u8D56\u3002`),console.error(`
|
|
103
103
|
\u{1F4A1} \u8BF7\u9009\u62E9\u4EE5\u4E0B\u89E3\u51B3\u65B9\u6848\u4E4B\u4E00\uFF1A`),console.error(' 1. \u5B89\u88C5 esbuild (peerDependency)\uFF1Anpm install esbuild@">=0.19.3" --save-dev'),console.error(" 2. \u6216\u8005\u5982\u679C\u4F7F\u7528 Vite \u9879\u76EE\uFF0Cesbuild \u901A\u5E38\u5DF2\u5B89\u88C5\uFF0C\u8BF7\u68C0\u67E5\u7248\u672C\u662F\u5426 >=0.19.3"),console.error(" 3. \u4F7F\u7528 JavaScript \u914D\u7F6E\u6587\u4EF6\uFF1A\u5C06 multipage.config.ts \u91CD\u547D\u540D\u4E3A multipage.config.js"),console.error(` 4. \u4F7F\u7528 ESM \u914D\u7F6E\u6587\u4EF6\uFF1A\u5C06 multipage.config.ts \u91CD\u547D\u540D\u4E3A multipage.config.mjs
|
|
104
|
-
`),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${
|
|
104
|
+
`),new Error(`\u9700\u8981 esbuild \u4F9D\u8D56\u6765\u5904\u7406 TypeScript \u914D\u7F6E\u6587\u4EF6: ${M.basename(t)}`)}let n=await i.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 ne){let i=M.resolve(t,e);if(j.existsSync(i))try{let n=await Ce(i),r=n.default||n;if(typeof r=="function")return r;console.warn(`\u914D\u7F6E\u6587\u4EF6 ${e} \u5FC5\u987B\u9ED8\u8BA4\u5BFC\u51FA\u4E00\u4E2A\u51FD\u6570`)}catch(n){e.endsWith(".ts")?(console.error(`\u52A0\u8F7DTypeScript\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,n),console.log("\u63D0\u793A\uFF1A\u786E\u4FDD\u4F60\u7684\u9879\u76EE\u652F\u6301TypeScript\uFF0C\u6216\u8005\u4F7F\u7528 .js/.mjs \u914D\u7F6E\u6587\u4EF6")):console.error(`\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6 ${e} \u5931\u8D25:`,n)}}return null}var F={entry:"src/pages/**/*.{ts,js}",exclude:[],template:"index.html",placeholder:"{{ENTRY_FILE}}",debug:!1,merge:"all",strategies:{default:{}},pageConfigs:{}};function N(t){return t?{entry:t.entry??F.entry,exclude:t.exclude??F.exclude,template:t.template??F.template,placeholder:t.placeholder??F.placeholder,debug:t.debug??F.debug,merge:t.merge??F.merge,strategies:t.strategies??F.strategies,pageConfigs:t.pageConfigs??F.pageConfigs,__forceBuildStrategy:t.__forceBuildStrategy}:{...F}}var ae=P(require("glob"));function re(t){return typeof t=="function"?t:()=>t}function se(t){return t}function oe(t,e,i,n){let r=h.resolve(t,"assets");if(!d.existsSync(r)){n("assets\u76EE\u5F55\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u91CD\u7EC4");return}let g=d.readdirSync(t).filter(a=>a.endsWith(".html")).map(a=>h.resolve(t,a));if(g.length===0){if(n("\u672A\u627E\u5230HTML\u6587\u4EF6\uFF0C\u4F46\u4ECD\u9700\u6E05\u7406assets\u76EE\u5F55"),(e==="strategy"||e==="page")&&d.existsSync(r))try{d.rmSync(r,{recursive:!0,force:!0}),n("\u5F3A\u5236\u6E05\u7406\u6574\u4E2A\u6839\u76EE\u5F55assets\u76EE\u5F55 (strategy/page\u6A21\u5F0F)")}catch(a){n("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",a)}return}let f=new Map,c=new Map;g.forEach(a=>{var b;let o=h.basename(a,".html");o.startsWith(".temp.mp.")&&(o=o.replace(".temp.mp.",""));let l=d.readFileSync(a,"utf-8"),y=[],C=/(?:src|href)="\/assets\/([^"]+)"/g,u;for(;(u=C.exec(l))!==null;){let E=u[1];y.push(E),c.has(E)||c.set(E,[]),(b=c.get(E))==null||b.push(o)}let x="";e==="strategy"?x="default":e==="page"&&(x=o);let v=h.resolve(t,x);f.set(o,{assets:y,targetDir:v}),n(`\u9875\u9762 ${o} \u4F9D\u8D56\u8D44\u6E90:`,y)}),n("\u7B2C\u4E00\u9636\u6BB5\u8865\u5145\uFF1A\u5206\u6790public\u76EE\u5F55\u8D44\u6E90");let s=new Set,p=h.resolve(process.cwd(),"public");if(d.existsSync(p)){let a=ae.sync("**/*",{cwd:p,nodir:!0});for(let o of a)s.add(o),n(`\u53D1\u73B0public\u8D44\u6E90: ${o}`)}c.forEach((a,o)=>{a.length>1?n(`\u5171\u4EAB\u8D44\u6E90 ${o} \u88AB\u9875\u9762\u4F7F\u7528:`,a):n(`\u72EC\u5360\u8D44\u6E90 ${o} \u4EC5\u88AB\u9875\u9762 ${a[0]} \u4F7F\u7528`)}),f.forEach(({assets:a,targetDir:o},l)=>{let y=h.resolve(o,"assets");d.existsSync(y)||d.mkdirSync(y,{recursive:!0}),a.forEach(C=>{let u=h.resolve(r,C),x=h.resolve(y,C);d.existsSync(u)?(d.copyFileSync(u,x),n(`\u590D\u5236\u8D44\u6E90\u6587\u4EF6\u5230 ${l}: assets/${C} -> ${h.relative(t,x)}`)):n(`\u8B66\u544A: \u8D44\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728: ${u}`)})}),n("\u7B2C\u4E09\u9636\u6BB5\u8865\u5145\uFF1A\u5904\u7406public\u76EE\u5F55\u8D44\u6E90");let m=new Set;f.forEach(({targetDir:a})=>{m.add(a)});for(let a of m)for(let o of s){let l=h.resolve(t,o),y=h.resolve(a,o);if(d.existsSync(l)){let C=h.dirname(y);d.existsSync(C)||d.mkdirSync(C,{recursive:!0}),d.copyFileSync(l,y),n(`\u590D\u5236public\u8D44\u6E90: ${o} -> ${h.relative(t,y)}`)}}if(f.forEach(({targetDir:a},o)=>{let l=h.resolve(t,`${o}.html`),y=o;if(d.existsSync(l)||(l=h.resolve(t,`.temp.mp.${o}.html`),d.existsSync(l)&&(y=o)),d.existsSync(l)){let C=d.readFileSync(l,"utf-8");C=C.replace(/(?:src|href)="\/assets\//g,v=>v.replace("/assets/","./assets/"));let u;e==="strategy"?u=h.resolve(a,`${y}.html`):e==="page"?u=h.resolve(a,"index.html"):u=l,d.writeFileSync(u,C),u!==l&&d.unlinkSync(l);let x=h.relative(t,u);n(`\u6309${e}\u5206\u7EC4\u79FB\u52A8HTML\u6587\u4EF6: ${y}.html -> ${x}`)}else n(`\u8B66\u544A: \u672A\u627E\u5230HTML\u6587\u4EF6: ${o}.html \u6216 .temp.mp.${o}.html`)}),d.existsSync(r))if(e==="strategy"||e==="page")try{d.rmSync(r,{recursive:!0,force:!0}),n("\u5F3A\u5236\u6E05\u7406\u6574\u4E2A\u6839\u76EE\u5F55assets\u76EE\u5F55 (strategy/page\u6A21\u5F0F)")}catch(a){n("\u6E05\u7406\u6839\u76EE\u5F55assets\u5931\u8D25:",a)}else{c.forEach((o,l)=>{let y=h.resolve(r,l);d.existsSync(y)&&(d.unlinkSync(y),n(`\u6E05\u7406\u539F\u59CB\u8D44\u6E90\u6587\u4EF6: assets/${l}`))});let a=d.readdirSync(r);a.length===0?(d.rmdirSync(r),n("\u6E05\u7406\u7A7A\u7684assets\u76EE\u5F55")):n("assets\u76EE\u5F55\u4E2D\u8FD8\u6709\u672A\u5904\u7406\u7684\u6587\u4EF6:",a)}(e==="strategy"||e==="page")&&s.size>0&&(n("\u7B2C\u4E94\u9636\u6BB5\u8865\u5145\uFF1A\u6E05\u7406\u6839\u76EE\u5F55\u7684public\u8D44\u6E90"),s.forEach(a=>{let o=h.resolve(t,a);if(d.existsSync(o))try{d.unlinkSync(o),n(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90: ${a}`)}catch(l){n(`\u5220\u9664\u6839\u76EE\u5F55public\u8D44\u6E90\u5931\u8D25: ${a}`,l)}}),s.forEach(a=>{let o=h.resolve(t,a),l=h.dirname(o);for(;l!==t&&l!==h.dirname(l);)try{if(d.existsSync(l)&&d.readdirSync(l).length===0)d.rmdirSync(l),n(`\u5220\u9664\u7A7A\u76EE\u5F55: ${h.relative(t,l)}`),l=h.dirname(l);else break}catch{break}}))}function le(t){let e,i=[],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 f=N(g);e=t?t(f,{mode:r.command==="serve"?"development":"production",command:r.command,isCLI:!1}):f,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 f;if(g==="serve"){let c=process.argv,s=c.find(p=>p.startsWith("--strategy="));if(s){let p=s.split("=")[1];p&&(process.env.VITE_MULTI_PAGE_STRATEGY=p)}else{let p=c.findIndex(m=>m==="--strategy");if(p!==-1&&p+1<c.length){let m=c[p+1];process.env.VITE_MULTI_PAGE_STRATEGY=m}}process.env.VITE_MULTI_PAGE_STRATEGY||(process.env.VITE_MULTI_PAGE_STRATEGY="default")}if(g==="build"){if(!e){let m=null;Y()&&(m=await z({mode:"production",command:"build",isCLI:!1}));let a=N(m);e=t?t(a,{mode:"production",command:"build",isCLI:!1}):a,n=e.debug??!1?console.log.bind(console,"[vite-multi-page]"):()=>{}}n("\u914D\u7F6E\u6784\u5EFA\u6A21\u5F0F");let c=process.env.VITE_MULTI_PAGE_STRATEGY,s=U({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:c}),p=Object.keys(s)[0];if(p&&s[p]){n(`\u5E94\u7528\u6784\u5EFA\u7B56\u7565: ${p}`);let m=s[p],a=(0,ie.mergeConfig)(r,m);Object.assign(r,a),n(`\u5DF2\u5E94\u7528\u7B56\u7565 "${p}" \u7684\u914D\u7F6E:`,{build:!!m.build,define:!!m.define,plugins:((f=m.plugins)==null?void 0:f.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",f=e.merge;n(`\u5E94\u7528\u6784\u5EFA\u4EA7\u7269\u5408\u5E76\u6A21\u5F0F: ${f}`);try{oe(g,f,e,n)}catch(c){throw n("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",c),c}},buildEnd(){i.length>0&&(n(`\u6E05\u7406 ${i.length} \u4E2A\u4E34\u65F6\u6587\u4EF6`),i.forEach(r=>{try{d.existsSync(r)&&(d.unlinkSync(r),n(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6: ${r}`))}catch(g){n(`\u5220\u9664\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${r}`,g)}}),i.length=0)}}}function be(t,e,i,n){return oe(t,e,i,n)}var Se=le;0&&(module.exports={cleanViteOutputDirectory,defineConfig,defineConfigTransform,generateBuildConfig,getAvailableStrategies,getViteOutputDirectory,mergeWithDefaults,reorganizeAssetsInCLI,viteMultiPage});
|
|
120
120
|
//# sourceMappingURL=index.js.map
|