@fchc8/vite-plugin-multi-page 1.10.2 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +1 -1
- package/package.json +8 -8
package/dist/cli.js
CHANGED
|
@@ -135,7 +135,7 @@ 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"&&t.push(c)}return{viteBuildArgs:t,debug:r,cwd:n,strategies:s}}async function Je(){let{loadUserConfig:e,hasCustomConfig:t}=await Promise.resolve().then(()=>(ce(),ve)),{mergeWithDefaults:r}=await Promise.resolve().then(()=>(te(),xe)),n=null;return t()&&(n=await e({mode:"production",command:"build",isCLI:!0}),n||console.log("\u274C \u914D\u7F6E\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25")),r(n)}function Qe(e,t,r){return new Promise(n=>{var f;let s=r?console.log.bind(console,`[${e}]`):()=>{};s(`\u5F00\u59CB\u6784\u5EFA\u7B56\u7565: ${e}`);let l={...process.env,VITE_MULTI_PAGE_STRATEGY:e},c=["build",...t];s(`\u6267\u884C\u547D\u4EE4: npx vite ${c.join(" ")}`);let i=(0,ge.spawn)("npx",["vite",...c],{stdio:r?"inherit":"pipe",env:l,cwd:process.cwd()}),g="";r||(f=i.stderr)==null||f.on("data",m=>{g+=m.toString()}),i.on("close",m=>{let a=m===0,u=L(t);if(a){s(`\u2705 \u7B56\u7565 ${e} \u6784\u5EFA\u6210\u529F`);try{if(d.existsSync(u)){let o=d.readdirSync(u);for(let p of o)if(p.startsWith(".temp.mp.")&&p.endsWith(".html")){let y=x.resolve(u,p),S=`${p.replace(/^\.temp\.mp\./,"").replace(/\.html$/,"")}.html`,$=x.resolve(u,S);d.renameSync(y,$),s(`\u91CD\u547D\u540DHTML: ${p} -> ${S}`)}}}catch(o){s("\u91CD\u547D\u540DHTML\u6587\u4EF6\u5931\u8D25:",o)}}else s(`\u274C \u7B56\u7565 ${e} \u6784\u5EFA\u5931\u8D25 (\u9000\u51FA\u7801: ${m})`),!r&&g&&console.error(`\u7B56\u7565 ${e} \u9519\u8BEF\u8F93\u51FA:`,g);n({strategy:e,success:a,error:a?void 0:g||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${m}`,outputDir:u})}),i.on("error",m=>{s(`\u274C \u7B56\u7565 ${e} \u6784\u5EFA\u51FA\u9519:`,m.message);let a=L(t);n({strategy:e,success:!1,error:m.message,outputDir:a})})})}function Ke(e,t,r,n,s,l){return new Promise(c=>{var o;let i=r?console.log.bind(console,`[${e}]`):()=>{};i(`\u5F00\u59CB\u6784\u5EFA\u9875\u9762: ${e}`);let g=x.resolve(process.cwd(),`dist-temp-${e}`),f={...process.env,VITE_MULTI_PAGE_BUILD_SINGLE_PAGE:e,VITE_MULTI_PAGE_TEMP_OUTPUT_DIR:g,VITE_MULTI_PAGE_STRATEGY:n,VITE_MULTI_PAGE_CURRENT_PAGE:e,VITE_MULTI_PAGE_MERGE_MODE:s.merge||"all"};if(s.pageEnvs&&typeof s.pageEnvs=="function")try{let p={pageName:e,filePath:l.file,relativePath:x.relative(process.cwd(),l.file),strategy:n},y=s.pageEnvs(p);if(y&&typeof y=="object"){for(let[v,S]of Object.entries(y))f[v]=String(S);i("\u6CE8\u5165\u81EA\u5B9A\u4E49\u73AF\u5883\u53D8\u91CF:",Object.keys(y))}}catch(p){i("\u8B66\u544A: \u83B7\u53D6\u9875\u9762\u73AF\u5883\u53D8\u91CF\u5931\u8D25:",p)}let m=["build","--outDir",g,...t];i(`\u6267\u884C\u547D\u4EE4: npx vite ${m.join(" ")}`);let a=(0,ge.spawn)("npx",["vite",...m],{stdio:r?"inherit":"pipe",env:f,cwd:process.cwd()}),u="";r||(o=a.stderr)==null||o.on("data",p=>{u+=p.toString()}),a.on("close",p=>{let y=p===0;y?i(`\u2705 \u9875\u9762 ${e} \u6784\u5EFA\u6210\u529F`):(i(`\u274C \u9875\u9762 ${e} \u6784\u5EFA\u5931\u8D25 (\u9000\u51FA\u7801: ${p})`),!r&&u&&console.error(`\u9875\u9762 ${e} \u9519\u8BEF\u8F93\u51FA:`,u)),c({pageName:e,success:y,error:y?void 0:u||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${p}`,outputDir:g})}),a.on("error",p=>{i(`\u274C \u9875\u9762 ${e} \u6784\u5EFA\u51FA\u9519:`,p.message),c({pageName:e,success:!1,error:p.message,outputDir:g})})})}async function Xe(e,t,r){let n=r?console.log.bind(console,"[merge]"):()=>{};n("\u5F00\u59CB\u5408\u5E76\u6784\u5EFA\u7ED3\u679C...");let s=t.merge||"all";n(`\u4F7F\u7528\u5408\u5E76\u6A21\u5F0F: ${s}`),s==="all"?await De(e,r):s==="page"&&await et(e,t,r)}async function Ze(e,t,r){let n=r?console.log.bind(console,"[merge]"):()=>{},s=x.resolve(process.cwd(),"dist"),l=x.resolve(process.cwd(),".temp-merge");d.existsSync(l)&&d.rmSync(l,{recursive:!0,force:!0}),d.mkdirSync(l,{recursive:!0});for(let i of e){if(!i.success)continue;let g=i.outputDir;if(!d.existsSync(g)){n(`\u8B66\u544A: \u9875\u9762\u6784\u5EFA\u76EE\u5F55\u4E0D\u5B58\u5728: ${g}`);continue}let f=x.resolve(l,i.pageName);d.mkdirSync(f,{recursive:!0});let m=d.readdirSync(g,{withFileTypes:!0});for(let a of m){let u=x.resolve(g,a.name);if(a.isFile())if(a.name.endsWith(".html")){let o=x.resolve(f,"index.html");d.copyFileSync(u,o)}else{let o=x.resolve(f,a.name);d.copyFileSync(u,o)}else if(a.isDirectory())if(a.name===i.pageName){let o=d.readdirSync(u,{withFileTypes:!0});for(let p of o){let y=x.resolve(u,p.name),v=x.resolve(f,p.name);p.isFile()?d.copyFileSync(y,v):p.isDirectory()&&d.cpSync(y,v,{recursive:!0})}}else{let o=x.resolve(f,a.name);d.cpSync(u,o,{recursive:!0})}}}let c=x.resolve(x.dirname(s),".dist-backup");d.existsSync(c)&&d.rmSync(c,{recursive:!0,force:!0}),d.existsSync(s)&&d.renameSync(s,c);try{d.renameSync(l,s)}catch{d.cpSync(l,s,{recursive:!0}),d.rmSync(l,{recursive:!0,force:!0})}d.existsSync(c)&&d.rmSync(c,{recursive:!0,force:!0});for(let i of e)i.outputDir&&d.existsSync(i.outputDir)&&d.rmSync(i.outputDir,{recursive:!0,force:!0})}async function De(e,t){let r=t?console.log.bind(console,"[merge]"):()=>{},n=x.resolve(process.cwd(),"dist"),s=x.resolve(n,"assets");d.existsSync(s)||d.mkdirSync(s,{recursive:!0});let l=[];for(let c of e){if(!c.success)continue;let i=x.resolve(n,c.strategy);if(!d.existsSync(i)){r(`\u8B66\u544A: \u7B56\u7565\u76EE\u5F55\u4E0D\u5B58\u5728: ${i}`);continue}r(`\u5904\u7406\u7B56\u7565: ${c.strategy}`);let g=d.readdirSync(i,{withFileTypes:!0});for(let f of g){let m=x.resolve(i,f.name);if(f.isFile())if(f.name.endsWith(".html")){let a=x.resolve(n,f.name);d.copyFileSync(m,a),l.push(f.name),r(`\u590D\u5236HTML: ${f.name} -> dist/${f.name}`)}else{let a=x.resolve(n,f.name);d.copyFileSync(m,a),r(`\u590D\u5236\u6587\u4EF6: ${f.name} -> dist/${f.name}`)}else if(f.isDirectory()&&f.name==="assets"){let a=m,u=d.readdirSync(a,{withFileTypes:!0});for(let o of u){let p=x.resolve(a,o.name),y=x.resolve(s,o.name);if(o.isFile())if(d.existsSync(y)){let v=d.readFileSync(p),S=d.readFileSync(y);if(v.equals(S))r(`\u8DF3\u8FC7\u91CD\u590D\u8D44\u6E90: ${o.name}`);else{let $=x.extname(o.name),P=`${x.basename(o.name,$)}-${c.strategy}${$}`,A=x.resolve(s,P);d.copyFileSync(p,A),r(`\u590D\u5236\u8D44\u6E90(\u91CD\u547D\u540D): ${o.name} -> assets/${P}`)}}else d.copyFileSync(p,y),r(`\u590D\u5236\u8D44\u6E90: ${o.name} -> assets/${o.name}`);else if(o.isDirectory()){let v=x.resolve(s,o.name);d.existsSync(v)||d.mkdirSync(v,{recursive:!0}),d.cpSync(p,v,{recursive:!0}),r(`\u590D\u5236\u8D44\u6E90\u76EE\u5F55: ${o.name} -> assets/${o.name}`)}}}else if(f.isDirectory()){let a=x.resolve(n,f.name);d.cpSync(m,a,{recursive:!0}),r(`\u590D\u5236\u76EE\u5F55: ${f.name} -> dist/${f.name}`)}}}r("\u2705 \u6784\u5EFA\u7ED3\u679C\u5408\u5E76\u5B8C\u6210"),r(`\u{1F4C1} \u751F\u6210\u9875\u9762: ${l.join(", ")}`),r("\u{1F4E6} \u8D44\u6E90\u76EE\u5F55: dist/assets/"),r(`\u{1F527} \u5904\u7406\u7B56\u7565: ${e.filter(c=>c.success).map(c=>c.strategy).join(", ")}`)}async function et(e,t,r){let n=r?console.log.bind(console,"[merge]"):()=>{};await De(e,r);let s=x.resolve(process.cwd(),"dist"),l=t.merge;n(`\u5E94\u7528${l}\u6A21\u5F0F\u7684\u8D44\u6E90\u91CD\u7EC4...`);try{let{reorganizeAssetsInCLI:c}=await Promise.resolve().then(()=>(Oe(),_e));await c(s,l,t,n),n(`\u2705 ${l}\u6A21\u5F0F\u8D44\u6E90\u91CD\u7EC4\u5B8C\u6210`)}catch(c){throw n("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",c),c}}async function fe(e){let t=se.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let r of t){let n=x.resolve(process.cwd(),r);try{d.unlinkSync(n)}catch{}}}async function tt(e,t,r){let n=r?console.log.bind(console,"[cleanup]"):()=>{};n("\u6E05\u7406\u4E34\u65F6\u6587\u4EF6...");let s=t.merge||"all",l=se.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let c of l){let i=x.resolve(process.cwd(),c);try{d.unlinkSync(i),n(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6: ${c}`)}catch(g){n(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${c}`,g)}}for(let c of e){let i=x.resolve(process.cwd(),"dist",c);if(d.existsSync(i)){let g=se.sync("*.mp.temp.html",{cwd:i});for(let f of g){let m=x.resolve(i,f);try{d.unlinkSync(m),n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6: ${c}/${f}`)}catch(a){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${c}/${f}`,a)}}}}if(s==="all"){let c=x.resolve(process.cwd(),"dist");for(let i of e){let g=x.resolve(c,i);if(d.existsSync(g))try{d.rmSync(g,{recursive:!0,force:!0}),n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55: ${i}`)}catch(f){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u5931\u8D25: ${i}`,f)}}}else n(`\u4FDD\u7559\u7B56\u7565\u76EE\u5F55 (merge\u6A21\u5F0F: ${s})`);n("\u2705 \u6E05\u7406\u5B8C\u6210")}async function Me(){let{viteBuildArgs:e,debug:t,cwd:r,strategies:n}=qe(),s=t?console.log.bind(console,"[main]"):()=>{};if(r){let l=x.resolve(process.cwd(),r);d.existsSync(l)||(console.error(`\u274C \u6307\u5B9A\u7684\u76EE\u5F55\u4E0D\u5B58\u5728: ${l}`),process.exit(1)),process.chdir(l),s(`\u5207\u6362\u5DE5\u4F5C\u76EE\u5F55\u5230: ${l}`)}try{s("\u{1F4CB} \u52A0\u8F7D\u914D\u7F6E...");let l=await Je(),c=l.merge||"all";s("\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55...");let{cleanViteOutputDirectory:i}=await Promise.resolve().then(()=>(U(),X));i(e),c==="page"?await st(l,e,t):await nt(l,e,t,n)}catch(l){console.error("\u274C \u6784\u5EFA\u5931\u8D25:",l instanceof Error?l.message:l),process.exit(1)}}async function st(e,t,r){let n=r?console.log.bind(console,"[page-mode]"):()=>{};n("\u{1F680} \u5F00\u59CBPage\u6A21\u5F0F\u6784\u5EFA...");let{discoverPages:s}=await Promise.resolve().then(()=>(U(),X)),l=s({entry:e.entry||"src/pages/*/main.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",pageConfigs:e.pageConfigs||{},strategies:e.strategies||{}});if(l.length===0)throw new Error("\u672A\u627E\u5230\u4EFB\u4F55\u9875\u9762");n(`\u53D1\u73B0\u9875\u9762: ${l.map(o=>o.name).join(", ")}`);let{getPageConfig:c}=await Promise.resolve().then(()=>(J(),ue)),i=new Map;for(let o of l){let p={pageName:o.name,filePath:o.file,relativePath:x.relative(process.cwd(),o.file)},y=c(e.pageConfigs,p,()=>{}),v=(y==null?void 0:y.strategy)||"default";i.set(o.name,v)}n("\u{1F528} \u5F00\u59CB\u5E76\u884C\u6784\u5EFA\u9875\u9762...");let g=l.map(o=>{let p=i.get(o.name)||"default";return Ke(o.name,t,r,p,e,o)}),f=await Promise.all(g),m=f.filter(o=>o.success).length,a=f.length-m;console.log(`
|
|
138
|
+
`),process.exit(0)):c!=="build"&&t.push(c)}return{viteBuildArgs:t,debug:r,cwd:n,strategies:s}}async function Je(){let{loadUserConfig:e,hasCustomConfig:t}=await Promise.resolve().then(()=>(ce(),ve)),{mergeWithDefaults:r}=await Promise.resolve().then(()=>(te(),xe)),n=null;return t()&&(n=await e({mode:"production",command:"build",isCLI:!0}),n||console.log("\u274C \u914D\u7F6E\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25")),r(n)}function Qe(e,t,r){return new Promise(n=>{var f;let s=r?console.log.bind(console,`[${e}]`):()=>{};s(`\u5F00\u59CB\u6784\u5EFA\u7B56\u7565: ${e}`);let l={...process.env,VITE_MULTI_PAGE_STRATEGY:e},c=["build",...t];s(`\u6267\u884C\u547D\u4EE4: npx vite ${c.join(" ")}`);let i=(0,ge.spawn)("npx",["vite",...c],{stdio:r?"inherit":"pipe",env:l,cwd:process.cwd(),shell:process.platform==="win32"}),g="";r||(f=i.stderr)==null||f.on("data",m=>{g+=m.toString()}),i.on("close",m=>{let a=m===0,u=L(t);if(a){s(`\u2705 \u7B56\u7565 ${e} \u6784\u5EFA\u6210\u529F`);try{if(d.existsSync(u)){let o=d.readdirSync(u);for(let p of o)if(p.startsWith(".temp.mp.")&&p.endsWith(".html")){let y=x.resolve(u,p),S=`${p.replace(/^\.temp\.mp\./,"").replace(/\.html$/,"")}.html`,$=x.resolve(u,S);d.renameSync(y,$),s(`\u91CD\u547D\u540DHTML: ${p} -> ${S}`)}}}catch(o){s("\u91CD\u547D\u540DHTML\u6587\u4EF6\u5931\u8D25:",o)}}else s(`\u274C \u7B56\u7565 ${e} \u6784\u5EFA\u5931\u8D25 (\u9000\u51FA\u7801: ${m})`),!r&&g&&console.error(`\u7B56\u7565 ${e} \u9519\u8BEF\u8F93\u51FA:`,g);n({strategy:e,success:a,error:a?void 0:g||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${m}`,outputDir:u})}),i.on("error",m=>{s(`\u274C \u7B56\u7565 ${e} \u6784\u5EFA\u51FA\u9519:`,m.message);let a=L(t);n({strategy:e,success:!1,error:m.message,outputDir:a})})})}function Ke(e,t,r,n,s,l){return new Promise(c=>{var o;let i=r?console.log.bind(console,`[${e}]`):()=>{};i(`\u5F00\u59CB\u6784\u5EFA\u9875\u9762: ${e}`);let g=x.resolve(process.cwd(),`dist-temp-${e}`),f={...process.env,VITE_MULTI_PAGE_BUILD_SINGLE_PAGE:e,VITE_MULTI_PAGE_TEMP_OUTPUT_DIR:g,VITE_MULTI_PAGE_STRATEGY:n,VITE_MULTI_PAGE_CURRENT_PAGE:e,VITE_MULTI_PAGE_MERGE_MODE:s.merge||"all"};if(s.pageEnvs&&typeof s.pageEnvs=="function")try{let p={pageName:e,filePath:l.file,relativePath:x.relative(process.cwd(),l.file),strategy:n},y=s.pageEnvs(p);if(y&&typeof y=="object"){for(let[v,S]of Object.entries(y))f[v]=String(S);i("\u6CE8\u5165\u81EA\u5B9A\u4E49\u73AF\u5883\u53D8\u91CF:",Object.keys(y))}}catch(p){i("\u8B66\u544A: \u83B7\u53D6\u9875\u9762\u73AF\u5883\u53D8\u91CF\u5931\u8D25:",p)}let m=["build","--outDir",g,...t];i(`\u6267\u884C\u547D\u4EE4: npx vite ${m.join(" ")}`);let a=(0,ge.spawn)("npx",["vite",...m],{stdio:r?"inherit":"pipe",env:f,cwd:process.cwd(),shell:process.platform==="win32"}),u="";r||(o=a.stderr)==null||o.on("data",p=>{u+=p.toString()}),a.on("close",p=>{let y=p===0;y?i(`\u2705 \u9875\u9762 ${e} \u6784\u5EFA\u6210\u529F`):(i(`\u274C \u9875\u9762 ${e} \u6784\u5EFA\u5931\u8D25 (\u9000\u51FA\u7801: ${p})`),!r&&u&&console.error(`\u9875\u9762 ${e} \u9519\u8BEF\u8F93\u51FA:`,u)),c({pageName:e,success:y,error:y?void 0:u||`\u6784\u5EFA\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${p}`,outputDir:g})}),a.on("error",p=>{i(`\u274C \u9875\u9762 ${e} \u6784\u5EFA\u51FA\u9519:`,p.message),c({pageName:e,success:!1,error:p.message,outputDir:g})})})}async function Xe(e,t,r){let n=r?console.log.bind(console,"[merge]"):()=>{};n("\u5F00\u59CB\u5408\u5E76\u6784\u5EFA\u7ED3\u679C...");let s=t.merge||"all";n(`\u4F7F\u7528\u5408\u5E76\u6A21\u5F0F: ${s}`),s==="all"?await De(e,r):s==="page"&&await et(e,t,r)}async function Ze(e,t,r){let n=r?console.log.bind(console,"[merge]"):()=>{},s=x.resolve(process.cwd(),"dist"),l=x.resolve(process.cwd(),".temp-merge");d.existsSync(l)&&d.rmSync(l,{recursive:!0,force:!0}),d.mkdirSync(l,{recursive:!0});for(let i of e){if(!i.success)continue;let g=i.outputDir;if(!d.existsSync(g)){n(`\u8B66\u544A: \u9875\u9762\u6784\u5EFA\u76EE\u5F55\u4E0D\u5B58\u5728: ${g}`);continue}let f=x.resolve(l,i.pageName);d.mkdirSync(f,{recursive:!0});let m=d.readdirSync(g,{withFileTypes:!0});for(let a of m){let u=x.resolve(g,a.name);if(a.isFile())if(a.name.endsWith(".html")){let o=x.resolve(f,"index.html");d.copyFileSync(u,o)}else{let o=x.resolve(f,a.name);d.copyFileSync(u,o)}else if(a.isDirectory())if(a.name===i.pageName){let o=d.readdirSync(u,{withFileTypes:!0});for(let p of o){let y=x.resolve(u,p.name),v=x.resolve(f,p.name);p.isFile()?d.copyFileSync(y,v):p.isDirectory()&&d.cpSync(y,v,{recursive:!0})}}else{let o=x.resolve(f,a.name);d.cpSync(u,o,{recursive:!0})}}}let c=x.resolve(x.dirname(s),".dist-backup");d.existsSync(c)&&d.rmSync(c,{recursive:!0,force:!0}),d.existsSync(s)&&d.renameSync(s,c);try{d.renameSync(l,s)}catch{d.cpSync(l,s,{recursive:!0}),d.rmSync(l,{recursive:!0,force:!0})}d.existsSync(c)&&d.rmSync(c,{recursive:!0,force:!0});for(let i of e)i.outputDir&&d.existsSync(i.outputDir)&&d.rmSync(i.outputDir,{recursive:!0,force:!0})}async function De(e,t){let r=t?console.log.bind(console,"[merge]"):()=>{},n=x.resolve(process.cwd(),"dist"),s=x.resolve(n,"assets");d.existsSync(s)||d.mkdirSync(s,{recursive:!0});let l=[];for(let c of e){if(!c.success)continue;let i=x.resolve(n,c.strategy);if(!d.existsSync(i)){r(`\u8B66\u544A: \u7B56\u7565\u76EE\u5F55\u4E0D\u5B58\u5728: ${i}`);continue}r(`\u5904\u7406\u7B56\u7565: ${c.strategy}`);let g=d.readdirSync(i,{withFileTypes:!0});for(let f of g){let m=x.resolve(i,f.name);if(f.isFile())if(f.name.endsWith(".html")){let a=x.resolve(n,f.name);d.copyFileSync(m,a),l.push(f.name),r(`\u590D\u5236HTML: ${f.name} -> dist/${f.name}`)}else{let a=x.resolve(n,f.name);d.copyFileSync(m,a),r(`\u590D\u5236\u6587\u4EF6: ${f.name} -> dist/${f.name}`)}else if(f.isDirectory()&&f.name==="assets"){let a=m,u=d.readdirSync(a,{withFileTypes:!0});for(let o of u){let p=x.resolve(a,o.name),y=x.resolve(s,o.name);if(o.isFile())if(d.existsSync(y)){let v=d.readFileSync(p),S=d.readFileSync(y);if(v.equals(S))r(`\u8DF3\u8FC7\u91CD\u590D\u8D44\u6E90: ${o.name}`);else{let $=x.extname(o.name),P=`${x.basename(o.name,$)}-${c.strategy}${$}`,A=x.resolve(s,P);d.copyFileSync(p,A),r(`\u590D\u5236\u8D44\u6E90(\u91CD\u547D\u540D): ${o.name} -> assets/${P}`)}}else d.copyFileSync(p,y),r(`\u590D\u5236\u8D44\u6E90: ${o.name} -> assets/${o.name}`);else if(o.isDirectory()){let v=x.resolve(s,o.name);d.existsSync(v)||d.mkdirSync(v,{recursive:!0}),d.cpSync(p,v,{recursive:!0}),r(`\u590D\u5236\u8D44\u6E90\u76EE\u5F55: ${o.name} -> assets/${o.name}`)}}}else if(f.isDirectory()){let a=x.resolve(n,f.name);d.cpSync(m,a,{recursive:!0}),r(`\u590D\u5236\u76EE\u5F55: ${f.name} -> dist/${f.name}`)}}}r("\u2705 \u6784\u5EFA\u7ED3\u679C\u5408\u5E76\u5B8C\u6210"),r(`\u{1F4C1} \u751F\u6210\u9875\u9762: ${l.join(", ")}`),r("\u{1F4E6} \u8D44\u6E90\u76EE\u5F55: dist/assets/"),r(`\u{1F527} \u5904\u7406\u7B56\u7565: ${e.filter(c=>c.success).map(c=>c.strategy).join(", ")}`)}async function et(e,t,r){let n=r?console.log.bind(console,"[merge]"):()=>{};await De(e,r);let s=x.resolve(process.cwd(),"dist"),l=t.merge;n(`\u5E94\u7528${l}\u6A21\u5F0F\u7684\u8D44\u6E90\u91CD\u7EC4...`);try{let{reorganizeAssetsInCLI:c}=await Promise.resolve().then(()=>(Oe(),_e));await c(s,l,t,n),n(`\u2705 ${l}\u6A21\u5F0F\u8D44\u6E90\u91CD\u7EC4\u5B8C\u6210`)}catch(c){throw n("\u8D44\u6E90\u91CD\u7EC4\u5931\u8D25:",c),c}}async function fe(e){let t=se.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let r of t){let n=x.resolve(process.cwd(),r);try{d.unlinkSync(n)}catch{}}}async function tt(e,t,r){let n=r?console.log.bind(console,"[cleanup]"):()=>{};n("\u6E05\u7406\u4E34\u65F6\u6587\u4EF6...");let s=t.merge||"all",l=se.sync(".temp.mp.*.html",{cwd:process.cwd()});for(let c of l){let i=x.resolve(process.cwd(),c);try{d.unlinkSync(i),n(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6: ${c}`)}catch(g){n(`\u5220\u9664\u6839\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${c}`,g)}}for(let c of e){let i=x.resolve(process.cwd(),"dist",c);if(d.existsSync(i)){let g=se.sync("*.mp.temp.html",{cwd:i});for(let f of g){let m=x.resolve(i,f);try{d.unlinkSync(m),n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6: ${c}/${f}`)}catch(a){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u4E34\u65F6\u6587\u4EF6\u5931\u8D25: ${c}/${f}`,a)}}}}if(s==="all"){let c=x.resolve(process.cwd(),"dist");for(let i of e){let g=x.resolve(c,i);if(d.existsSync(g))try{d.rmSync(g,{recursive:!0,force:!0}),n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55: ${i}`)}catch(f){n(`\u5220\u9664\u7B56\u7565\u76EE\u5F55\u5931\u8D25: ${i}`,f)}}}else n(`\u4FDD\u7559\u7B56\u7565\u76EE\u5F55 (merge\u6A21\u5F0F: ${s})`);n("\u2705 \u6E05\u7406\u5B8C\u6210")}async function Me(){let{viteBuildArgs:e,debug:t,cwd:r,strategies:n}=qe(),s=t?console.log.bind(console,"[main]"):()=>{};if(r){let l=x.resolve(process.cwd(),r);d.existsSync(l)||(console.error(`\u274C \u6307\u5B9A\u7684\u76EE\u5F55\u4E0D\u5B58\u5728: ${l}`),process.exit(1)),process.chdir(l),s(`\u5207\u6362\u5DE5\u4F5C\u76EE\u5F55\u5230: ${l}`)}try{s("\u{1F4CB} \u52A0\u8F7D\u914D\u7F6E...");let l=await Je(),c=l.merge||"all";s("\u{1F9F9} \u6E05\u7406\u8F93\u51FA\u76EE\u5F55...");let{cleanViteOutputDirectory:i}=await Promise.resolve().then(()=>(U(),X));i(e),c==="page"?await st(l,e,t):await nt(l,e,t,n)}catch(l){console.error("\u274C \u6784\u5EFA\u5931\u8D25:",l instanceof Error?l.message:l),process.exit(1)}}async function st(e,t,r){let n=r?console.log.bind(console,"[page-mode]"):()=>{};n("\u{1F680} \u5F00\u59CBPage\u6A21\u5F0F\u6784\u5EFA...");let{discoverPages:s}=await Promise.resolve().then(()=>(U(),X)),l=s({entry:e.entry||"src/pages/*/main.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",pageConfigs:e.pageConfigs||{},strategies:e.strategies||{}});if(l.length===0)throw new Error("\u672A\u627E\u5230\u4EFB\u4F55\u9875\u9762");n(`\u53D1\u73B0\u9875\u9762: ${l.map(o=>o.name).join(", ")}`);let{getPageConfig:c}=await Promise.resolve().then(()=>(J(),ue)),i=new Map;for(let o of l){let p={pageName:o.name,filePath:o.file,relativePath:x.relative(process.cwd(),o.file)},y=c(e.pageConfigs,p,()=>{}),v=(y==null?void 0:y.strategy)||"default";i.set(o.name,v)}n("\u{1F528} \u5F00\u59CB\u5E76\u884C\u6784\u5EFA\u9875\u9762...");let g=l.map(o=>{let p=i.get(o.name)||"default";return Ke(o.name,t,r,p,e,o)}),f=await Promise.all(g),m=f.filter(o=>o.success).length,a=f.length-m;console.log(`
|
|
139
139
|
\u{1F4CA} \u9875\u9762\u6784\u5EFA\u7ED3\u679C\u7EDF\u8BA1:`),console.log(`\u2705 \u6210\u529F: ${m}`),console.log(`\u274C \u5931\u8D25: ${a}`),a>0&&(console.log(`
|
|
140
140
|
\u274C \u5931\u8D25\u7684\u9875\u9762:`),f.filter(o=>!o.success).forEach(o=>{console.log(` - ${o.pageName}: ${o.error}`)}),await fe(r),process.exit(1)),await Ze(f,e,r),await fe(r);let u=f.filter(o=>o.success);console.log(`
|
|
141
141
|
\u{1F389} \u6240\u6709\u9875\u9762\u6784\u5EFA\u6210\u529F\uFF01`),console.log("\u{1F4C1} \u6784\u5EFA\u7ED3\u679C\u4F4D\u4E8E: dist/"),console.log(`\u{1F4E6} \u6784\u5EFA\u9875\u9762: ${u.map(o=>o.pageName).join(", ")}`)}async function nt(e,t,r,n){let s=r?console.log.bind(console,"[strategy-mode]"):()=>{};s("\u{1F680} \u5F00\u59CB\u7B56\u7565\u6A21\u5F0F\u6784\u5EFA...");let{getAvailableStrategies:l}=await Promise.resolve().then(()=>(U(),X)),c=l({entry:e.entry||"src/pages/*/main.{ts,js}",exclude:e.exclude||[],template:e.template||"index.html",placeholder:e.placeholder||"{{ENTRY_FILE}}",pageConfigs:e.pageConfigs||{},strategies:e.strategies||{}});if(c.length===0)throw new Error("\u672A\u627E\u5230\u4EFB\u4F55\u6784\u5EFA\u7B56\u7565");let i;if(n&&n.length>0){let p=n.filter(y=>!c.includes(y));if(p.length>0)throw new Error(`\u6307\u5B9A\u7684\u7B56\u7565\u4E0D\u5B58\u5728: ${p.join(", ")}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fchc8/vite-plugin-multi-page",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.0",
|
|
4
4
|
"description": "A powerful Vite plugin for building multi-page applications with smart file routing and multi-strategy builds",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "tsup",
|
|
39
|
-
"postbuild": "
|
|
39
|
+
"postbuild": "node -e \"try { require('fs').unlinkSync('dist/index.d.mts'); } catch(e) {}\"",
|
|
40
40
|
"dev": "tsup --watch",
|
|
41
41
|
"type-check": "tsc --noEmit",
|
|
42
42
|
"lint": "eslint src --ext .ts --fix",
|
|
@@ -45,14 +45,14 @@
|
|
|
45
45
|
"test": "echo 'No tests yet'",
|
|
46
46
|
"test:cli": "node scripts/test-cli.js",
|
|
47
47
|
"verify:exports": "node scripts/verify-exports.js",
|
|
48
|
-
"clean": "
|
|
48
|
+
"clean": "node -e \"try { require('fs').rmSync('dist', { recursive: true, force: true }); } catch(e) {}\"",
|
|
49
49
|
"example:dev": "cd example && pnpm run dev",
|
|
50
50
|
"example:build": "cd example && pnpm run build",
|
|
51
51
|
"example:preview": "cd example && pnpm run preview",
|
|
52
|
-
"pre-release": "
|
|
52
|
+
"pre-release": "node scripts/pre-release-check.js",
|
|
53
53
|
"prepack": "pnpm run clean && pnpm run type-check && pnpm run lint && pnpm run format:check && pnpm run build",
|
|
54
54
|
"prepublishOnly": "pnpm run prepack",
|
|
55
|
-
"postpublish": "
|
|
55
|
+
"postpublish": "node -e \"if (process.env.CI) { console.log('Skipping git push in CI environment'); } else { require('child_process').execSync('git push && git push --tags', { stdio: 'inherit' }); }\"",
|
|
56
56
|
"version:patch": "npm version patch",
|
|
57
57
|
"version:minor": "npm version minor",
|
|
58
58
|
"version:major": "npm version major",
|
|
@@ -62,9 +62,9 @@
|
|
|
62
62
|
"release:beta": "npm version prerelease --preid=beta && npm publish --tag beta",
|
|
63
63
|
"release:alpha": "npm version prerelease --preid=alpha && npm publish --tag alpha",
|
|
64
64
|
"git:init-flow": "git flow init -d",
|
|
65
|
-
"git:feature": "
|
|
66
|
-
"git:hotfix": "
|
|
67
|
-
"git:release": "
|
|
65
|
+
"git:feature": "node scripts/git-feature.js",
|
|
66
|
+
"git:hotfix": "node scripts/git-hotfix.js",
|
|
67
|
+
"git:release": "node scripts/git-release.js"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
70
|
"esbuild": ">=0.19.3",
|