@epxing/cli 0.4.0 → 0.5.0-beta.1

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.
@@ -1,73 +1,285 @@
1
1
  #!/usr/bin/env node
2
- import{a as ce}from"../chunks/AMQWUBTZ.mjs";import{a as le}from"../chunks/PP5RD4RH.mjs";import{a as Ze}from"../chunks/SH6LMMHZ.mjs";import{a as p,c as Be}from"../chunks/H4POBCHI.mjs";import m from"node:fs";import oe from"node:os";import S from"node:path";import{execSync as Q,spawnSync as Ne}from"node:child_process";import{fileURLToPath as dt}from"node:url";var q={"epx-frame":{target:"^5.3.0",note:"Vue3 \u7248 epx-frame\uFF08\u53D1\u5E03\u540E\u586B\u5B9E\u9645\u7248\u672C\uFF1B\u89C1 docs/build-and-publish.md \xA7\u2461\uFF09"},"@vue/cli-service":{target:"~5.0.8",dev:!0},"@vue/cli-plugin-babel":{target:"~5.0.8",dev:!0},"@vue/cli-plugin-eslint":{target:"~5.0.8",dev:!0},"@vue/cli-plugin-router":{target:"~5.0.8",dev:!0},"@vue/cli-plugin-vuex":{target:"~5.0.8",dev:!0},"@vue/cli-plugin-pwa":{target:"~5.0.8",dev:!0},"vue-template-compiler":{target:null,note:"Vue3 \u65E0\u6B64\u5305 \u2192 @vue/compiler-sfc\uFF08\u968F vue \u5305\u5185\u7F6E\uFF09"},"eslint-plugin-vue":{target:"^9.33.0",dev:!0},eslint:{target:"^8.57.0",dev:!0,note:"6\u21928 \u5BF9\u9F50\u5E73\u53F0\uFF08plugin-vue9/cli-plugin-eslint5 \u7684 peer\uFF09"},"babel-eslint":{target:null,dev:!0,note:"\u5F03\u7528 \u2192 @babel/eslint-parser\uFF08lint \u914D\u7F6E\u91CD\u5EFA\u65F6\u6309\u9700\u52A0\uFF09"},"@vue/eslint-config-standard":{target:null,dev:!0,note:"v5 \u7ED1 eslint6\uFF1Blint \u914D\u7F6E\u6309\u5E73\u53F0 .eslintrc \u91CD\u5EFA"},"eslint-plugin-import":{target:null,dev:!0,note:"\u8001 standard \u5957\u4EF6\u6210\u5458\uFF0C\u968F lint \u914D\u7F6E\u91CD\u5EFA"},"eslint-plugin-node":{target:null,dev:!0,note:"\u540C\u4E0A"},"eslint-plugin-promise":{target:null,dev:!0,note:"\u540C\u4E0A"},"eslint-plugin-standard":{target:null,dev:!0,note:"\u540C\u4E0A"},"element-ui":{target:null,note:"\u2192 \u5E73\u53F0\u8FD0\u884C\u65F6\u63D0\u4F9B element-plus\uFF1B\u9879\u76EE\u5185 import \u5904\u4EBA\u5DE5\u6E05\u7406"},"babel-plugin-component":{target:null,dev:!0,note:"element-ui \u6309\u9700\u5F15\u5165\u63D2\u4EF6\uFF0C\u5F03\u7528\uFF08babel.config \u7531\u5DE5\u5177\u540C\u6B65\u6E05\u7406\uFF09"},"vue-cli-plugin-element":{target:null,dev:!0,note:"element-ui \u7684 vue-cli \u63D2\u4EF6\uFF0C\u5F03\u7528"},"babel-plugin-import":{target:null,dev:!0,note:"vant \u6309\u9700\u5F15\u5165\uFF0C\u5F03\u7528\uFF08babel.config \u7531\u5DE5\u5177\u540C\u6B65\u6E05\u7406\uFF09"},vue:{target:"^3.5.13",note:"\u82E5\u9879\u76EE\u76F4\u63A5\u4F9D\u8D56 vue"},"vue-router":{target:"^4.6.0"},vuex:{target:"^4.1.0"}},ae={webpack:"^5.97.1","webpack-cli":"^5.1.4","vue-loader":"^17.4.2",vue:"^3.5.13","babel-loader":"^9.2.1","@babel/core":"^7.26.0","@babel/preset-env":"^7.26.0","css-loader":"^6.11.0","mini-css-extract-plugin":"^2.9.2","sass-loader":"^13.3.3","clean-webpack-plugin":"^4.0.0","url-loader":"^4.1.1","file-loader":"^6.2.0"},W={"gogocode-cli":"^0.2.28","gogocode-plugin-vue":"^1.0.29","gogocode-plugin-element":"^0.0.3"},pe={"@vue/babel-plugin-jsx":"^1.2.5"},ue={"@element-plus/icons-vue":"^2.3.1"},Y={signature_pad:"^5.1.3",sortablejs:"^1.15.7",moment:"^2.30.1","js-cookie":"^3.0.5",axios:"^1.18.1","lodash-es":"^4.17.21",lodash:"^4.17.21"},fe=['externals \u5DF2\u7531\u5DE5\u5177\u8FFD\u52A0 { vue: window.frame.Vue }\u2014\u2014Vue3 \u7F16\u8BD1\u4EA7\u7269 import "vue"\uFF0C\u8FD0\u884C\u65F6\u7531\u5E73\u53F0\u63D0\u4F9B\uFF0C\u522B\u6253\u8FDB bundle',"DefinePlugin \u7684 process.env \u4FDD\u7559\uFF08IP/BASE_* \u7531\u90E8\u7F72\u73AF\u5883\u6CE8\u5165\uFF09","browserslist/babel targets \u82E5\u542B ie\uFF08Vue3 \u4E0D\u652F\u6301 IE\uFF09\uFF0C\u5EFA\u8BAE\u66F4\u65B0\u4E3A\u73B0\u4EE3\u6D4F\u89C8\u5668"],B={"vue-orgchart-direction":{note:"\u7EC4\u7EC7\u67B6\u6784\u56FE\uFF08Vue2 \u7EC4\u4EF6\u5E93\uFF0C\u65E0 Vue3 \u7248\uFF09\u3002Vue3 \u4EA7\u7269\u8FD0\u884C\u65F6\u62A5 _c undefined\u3002\u5EFA\u8BAE\u6362 Vue3 \u517C\u5BB9\u7684\u7EC4\u7EC7\u67B6\u6784\u56FE\u5E93\uFF0C\u6216\u7528 SVG/canvas \u81EA\u5B9E\u73B0\u3002"},"vue-bpmn":{note:"BPMN \u6D41\u7A0B\u56FE\u7684 Vue2 \u5C01\u88C5\u7EC4\u4EF6\uFF0C\u65E0 Vue3 \u7248\u3002\u5EFA\u8BAE\u76F4\u63A5\u7528\u6846\u67B6\u65E0\u5173\u7684 bpmn-js \u81EA\u5C01\u88C5\uFF0C\u6216\u627E Vue3 \u5C01\u88C5\u3002"},"vue-quill-editor":{note:"\u5BCC\u6587\u672C\u7F16\u8F91\u5668\uFF08Vue2 \u7248\uFF0C3.x \u5DF2\u505C\u66F4\u672A\u51FA Vue3\uFF09\u3002Vue3 \u6362 @vueup/vue-quill\u3002"},vuedraggable:{note:"\u62D6\u62FD\u6392\u5E8F\uFF1A2.x \u4E3A Vue2 \u7248\u3002Vue3 \u7528\u540C\u540D vuedraggable@4\uFF08\u82E5\u9879\u76EE\u5DF2\u5347\u5230 4.x \u5219\u5FFD\u7565\u672C\u6761\uFF09\u3002"}};var Xe=/import\.meta\.glob\(\s*(['"])([^'"]+)\1\s*,\s*\{\s*eager\s*:\s*true\s*\}\s*\)/;function de(e){let t=Xe.exec(String(e||""));return t?t[2]:null}p(de,"extractGlobPattern");function Ue(e){let t=String(e||""),s=t.includes("vite-plugin-lazy-lib"),o=/lazyLib\s*\(/.test(t);return s&&o?"present":s||o?"half":"absent"}p(Ue,"lazyLibState");var me=p(e=>/'/.test(e)?JSON.stringify(e):`'${e}'`,"q"),Ge=`import lazyLib from 'epx-frame/build/vite-plugin-lazy-lib.mjs'
3
- `,We=/^([ \t]*)frameDeps\s*\(\s*\)\s*,?[^\n]*$/m;function ge(e,{glob:t,pkgName:s}){let o=String(e||""),i=Ue(o);if(i!=="absent")return{src:o,status:i};let n=We.exec(o);if(!n)return{src:o,status:"no-anchor"};let r=n[1],c=`
4
- ${r}// \u6253\u5305\u5F62\u6001\uFF1A\u9ED8\u8BA4\u6574\u4F53\u5355\u4F53\uFF08\u4E0E\u5386\u53F2\u4E00\u81F4\uFF09\u3002npm run build:lib:lazy \u5207\u5230\u300C\u6E05\u5355 + \u7EC4\u4EF6\u6309\u9700\u52A0\u8F7D\u300D\uFF0C
5
- ${r}// \u90E8\u7F72\u65F6\u5FC5\u987B\u4E0A\u4F20\u6574\u4E2A lib/ \u76EE\u5F55\uFF08\u4E0D\u518D\u662F index.js + index.css \u4E24\u4E2A\u6587\u4EF6\uFF09\u3002
6
- ${r}lazyLib({ enabled: process.env.LAZY_LIB === 'true', glob: ${me(t)}, pkgName: ${me(s)} }),`,a=o.slice(0,n.index+n[0].length)+c+o.slice(n.index+n[0].length),f=0;if(a.startsWith("#!")){let b=a.indexOf(`
7
- `);f=b===-1?a.length:b+1}let u=/^([ \t]*\/\/[^\n]*\r?\n|[ \t]*\r?\n)/,d;for(;d=a.slice(f).match(u);)f+=d[0].length;return a=a.slice(0,f)+Ge+a.slice(f),{src:a,status:"injected"}}p(ge,"injectLazyLib");function ve(e){let t=e||{},s={...t,scripts:{...t.scripts||{}}},o=!1;s.scripts["build:lib:lazy"]||(s.scripts["build:lib:lazy"]="cross-env LAZY_LIB=true vite build",o=!0);let i=!!(t.dependencies||{})["cross-env"],n=!!(t.devDependencies||{})["cross-env"];return!i&&!n?(s.devDependencies={...t.devDependencies||{},"cross-env":"^7.0.3"},o=!0):t.devDependencies&&(s.devDependencies={...t.devDependencies}),{pkg:s,changed:o}}p(ve,"addLazyScripts");import{TEMPLATES as be}from"../epx-create/scaffold.mjs";var Ye=["webpack","webpack-cli","webpack-merge","vue-loader","vue-template-compiler","css-loader","sass-loader","sass-resources-loader","style-loader","postcss-loader","node-sass","fibers","mini-css-extract-plugin","clean-webpack-plugin","progress-bar-webpack-plugin","url-loader","file-loader","raw-loader","babel-loader","@babel/core","@babel/preset-env","@vue/cli-service","@vue/cli-plugin-babel","@vue/cli-plugin-router","@vue/cli-plugin-vuex","@vue/cli-plugin-eslint","@vue/cli-plugin-pwa"];function He(e){let t=e,s=!1,o=/require\.context\(\s*['"]@\/([^'"]+)['"]\s*,\s*true\s*,\s*\/\\?\.vue\$?\/\s*\)/,i=t.match(o);return i&&(t=t.replace(o,`import.meta.glob('./${i[1]}/**/*.vue', { eager: true })`),s=!0),/\bfiles\.keys\(\)/.test(t)&&(t=t.replace(/\bfiles\.keys\(\)/g,"Object.keys(files)"),s=!0),/\bfiles\(([\w$]+)\)/.test(t)&&(t=t.replace(/\bfiles\(([\w$]+)\)/g,"files[$1]"),s=!0),/require\(\s*['"]\.\.\/package\.json['"]\s*\)/.test(t)&&(t=t.replace(/require\(\s*['"]\.\.\/package\.json['"]\s*\)/g,"pkg"),/import\s+pkg\s+from\s+['"]\.\.\/package\.json['"]/.test(t)||(t=`import pkg from '../package.json'
8
- `+t),s=!0),{src:t,changed:s}}p(He,"viteEntryCodemod");function $e({read:e,epxFrameSpec:t,basePkgRaw:s}){let o=[],i=[],n=s||e("package.json");if(!n)return{changes:o,manual:["\u65E0 package.json\uFF0C\u65E0\u6CD5\u505A vite \u5316"],info:{}};let r;try{r=JSON.parse(n)}catch(x){return{changes:o,manual:["package.json \u89E3\u6790\u5931\u8D25\uFF1A"+x.message],info:{}}}let c=String(r.name||"").toLowerCase(),a=["src/index.js","index.js"].find(x=>e(x)!=null),f=a?e(a):"",u=/import\.meta\.glob/.test(f),d=null,b=f.match(/require\.context\(\s*['"]@\/([^'"]+)['"]/);if(b)d=b[1];else if(u){let x=f.match(/import\.meta\.glob\(\s*['"]\.\/([^/'"]+)\//);x&&(d=x[1])}d||(d=c,i.push("\u5165\u53E3\u672A\u7528 require.context(@/X)\uFF0C\u65E0\u6CD5\u81EA\u52A8\u786E\u5B9A\u7EC4\u4EF6\u76EE\u5F55\u540D\uFF1B\u5DF2\u6309\u5305\u540D\u515C\u5E95\u586B vite.config \u7684 glob\uFF0C\u8BF7\u6838\u5BF9 lazyLib \u7684 glob \u4E0E\u5165\u53E3 import.meta.glob \u9010\u5B57\u4E00\u81F4\u3002"));let j=`./${d}/**/*.vue`;if(e("vite.config.mjs")!=null||e("vite.config.js")!=null||e("vite.config.ts")!=null)i.push("\u5DF2\u5B58\u5728 vite.config.*\uFF0C\u672A\u8986\u76D6\u3002\u82E5\u8981\u6309\u6A21\u677F\u91CD\u5EFA\uFF0C\u5148\u5220\u9664\u73B0\u6709 vite.config.* \u518D\u91CD\u8DD1 --to-vite\u3002");else{let x=be["vite.config.mjs"].replaceAll("__NAME__",c).replaceAll("__DIRNAME__",d);o.push({file:"vite.config.mjs",after:x})}let R=t||r.dependencies&&r.dependencies["epx-frame"]||"^5.3.0",z=JSON.parse(be["package.json"].replaceAll("__NAME__",c).replaceAll("__EPX_FRAME__",R));r.runtime=z.runtime,r.scripts={...r.scripts||{},...z.scripts},r.devDependencies=r.devDependencies||{};for(let[x,O]of Object.entries(z.devDependencies))r.devDependencies[x]=O;let M=[];for(let x of["dependencies","devDependencies"])if(r[x])for(let O of Object.keys(r[x]))Ye.includes(O)&&(delete r[x][O],M.push(O));o.push({file:"package.json",after:JSON.stringify(r,null,2)+`
9
- `});for(let x of["webpack.config.js","vue.config.js","babel.config.js"])e(x)!=null&&o.push({file:x,remove:!0});if(a&&/require\.context/.test(f)){let x=He(f);x.changed?(o.push({file:a,after:x.src}),i.push(`\u5165\u53E3 ${a} \u5DF2\u81EA\u52A8\u6539\u5199\uFF08require.context\u2192import.meta.glob\u3001files(k)\u2192files[k]\u3001require(pkg)\u2192import\uFF09\uFF1B\u8BF7\u590D\u6838\u5165\u53E3\u91CC router.addRoute / store \u6CE8\u518C / install \u7B49\u9879\u76EE\u7279\u6709\u903B\u8F91\uFF0C\u5E76\u786E\u8BA4 install \u5DF2\u662F Vue3 \u7684 install(app)\uFF08\u672A\u8FC1\u9879\u76EE\u5148\u8DD1 \u2460 --apply + \u2462 --transform-vue\uFF09\u3002`)):i.push(`\u5165\u53E3 ${a} \u7528\u4E86\u975E\u6807\u51C6 require.context \u6536\u96C6\uFF0C\u672A\u80FD\u81EA\u52A8\u6539\u5199\uFF0C\u8BF7\u624B\u52A8\u6362\u6210 import.meta.glob('${j}', { eager: true }) + Object.keys(files) \u6536\u96C6\uFF0C\u5E76\u628A require('../package.json') \u6539\u6210 import\u3002`)}let g=(e("webpack.config.js")||"")+`
10
- `+(e("vue.config.js")||"");if(/sass-resources-loader/.test(g)){let x=g.match(/resources:\s*path\.resolve\([^,]*,\s*['"]([^'"]+)['"]/);i.push(`scss \u5168\u5C40\u6CE8\u5165\uFF1A\u65E7\u914D\u7F6E\u7528 sass-resources-loader \u6CE8\u5165 ${x?"`"+x[1]+"`\uFF08\u9879\u76EE\u5185\uFF09":"(\u9879\u76EE\u5185 scss)"}\uFF1Bvite.config \u6A21\u677F\u9ED8\u8BA4\u6CE8\u5165\u7684\u662F epx-frame \u6846\u67B6 mixins\u3002\u9879\u76EE\u82E5\u6709\u81EA\u5DF1\u7684\u5168\u5C40 mixins\uFF0C\u628A vite.config \u7684 css.preprocessorOptions.scss.additionalData \u6307\u8FC7\u53BB\u3002`)}/DefinePlugin/.test(g)&&/process\.env/.test(g)&&i.push("\u65E7\u914D\u7F6E\u7528 DefinePlugin \u628A process.env\uFF08IP / BASE_* \u7B49\uFF09\u7F16\u8BD1\u8FDB\u4EA7\u7269\uFF1BVite \u5F62\u6001\u6539\u7531 .env* + \u5E73\u53F0\u8FD0\u884C\u65F6 window.* \u63D0\u4F9B\uFF08\u6A21\u677F dev \u58F3\u7684 inject-window-config \u5DF2\u63A5 .env\uFF09\u3002\u6838\u5BF9\u8FD9\u4E9B\u503C\u662F\u5426\u5DF2\u7531\u5E73\u53F0\u63D0\u4F9B\uFF0C\u6216\u8FC1\u5230 .env.development\u3002");let y=g.match(/url-loader[\s\S]{0,120}?limit:\s*([0-9*\s]+)/);y&&i.push(`\u65E7\u914D\u7F6E\u7528 url-loader \u5185\u8054\u5C0F\u8D44\u6E90\uFF08limit\u2248${y[1].trim()} \u5B57\u8282\uFF09\uFF1BVite \u7528 build.assetsInlineLimit\uFF08\u9ED8\u8BA4 4096\uFF09\u3002\u9608\u503C\u5DEE\u5F02\u5927\u65F6\u5728 vite.config \u7684 build \u91CC\u8865 assetsInlineLimit\u3002`);let v=g.match(/externals:\s*([^\n]+)/);if(v){let x=["recorder","echarts","xlsx","jspdf","luckysheet","pdfjs","signature"].filter(O=>new RegExp(O,"i").test(v[1]));x.length&&i.push(`\u65E7 externals \u542B\u6A21\u677F\u9ED8\u8BA4\u672A\u8986\u76D6\u7684\u5E93\uFF1A${x.join(", ")}\u3002\u6A21\u677F\u9ED8\u8BA4 external \u4E3A vue / epx-frame / element-* / bpmn\uFF1B\u5176\u4F59\u9700\u5728 vite.config \u7684 rollupOptions.external + output.globals \u91CC\u8865\uFF08\u53C2\u8003 hr \u7684 vite.config\uFF1Arecorder-core \u2192 window.Recorder \u7684 shim \u5199\u6CD5\uFF09\u3002`)}return{changes:o,manual:i,info:{pkgName:c,dirName:d,glob:j,removedDeps:M}}}p($e,"planToVite");var Ke=/import\s+(\w+)\s*,\s*\{([^}]*)\}\s*from\s*(['"])epx-frame\3/;function xe(e){let t=String(e||""),s=Ke.exec(t);if(!s)return t;let[o,i,n,r]=s,c=t.slice(0,s.index)+t.slice(s.index+o.length),a=n.split(",").map(u=>u.trim()).filter(Boolean).filter(u=>{let d=u.split(/\s+as\s+/).pop().trim();return/^[A-Za-z_$][\w$]*$/.test(d)?new RegExp(`(^|[^.\\w$])${d}\\b`).test(c):!0}),f=a.length?`import ${i}, { ${a.join(", ")} } from ${r}epx-frame${r}`:`import ${i} from ${r}epx-frame${r}`;return t.slice(0,s.index)+f+t.slice(s.index+o.length)}p(xe,"collapseFrameImport");import H from"node:path";var Qe=["gogocode-plugin-vue","gogocode-plugin-element"];function he(e,t){for(let s of e||[]){if(!s)continue;let o=H.join(s,"node_modules"),i=H.join(o,"gogocode-cli","index.js");if(t(i)&&!Qe.some(n=>!t(H.join(o,n))))return i}return null}p(he,"findGogocode");function et({projectDir:e,toolDir:t,cacheDir:s}){return[e,t,s].filter(Boolean)}p(et,"gogocodeRoots");function ye({projectDir:e,toolDir:t,cacheDir:s,versions:o,exists:i,install:n,log:r}){let c=r||(()=>{}),a=et({projectDir:e,toolDir:t,cacheDir:s}),f=he(a,i);if(f)return{cli:f,installed:!1};let u=Object.entries(o||{}).map(([b,j])=>`${b}@${j}`);if(!u.length)return{cli:null,installed:!1,error:"\u6CA1\u6709\u53EF\u5B89\u88C5\u7684 gogocode \u7248\u672C\u6E05\u5355"};c(` \xB7 \u672A\u627E\u5230 gogocode\uFF0C\u6B63\u5728\u88C5\u8FDB\u7F13\u5B58\u76EE\u5F55\uFF08\u7EA6 149 \u4E2A\u5305\uFF0C\u9996\u6B21\u51E0\u5341\u79D2\uFF0C\u4E4B\u540E\u590D\u7528\uFF09\uFF1A
11
- ${s}`);try{n({cacheDir:s,specs:u})}catch(b){return{cli:null,installed:!1,error:String(b&&b.message||b).slice(0,200)}}let d=he([s],i);return d?{cli:d,installed:!0}:{cli:null,installed:!0,error:"\u5B89\u88C5\u5B8C\u6210\u4F46\u4ECD\u89E3\u6790\u4E0D\u5230 gogocode\uFF08\u7F13\u5B58\u76EE\u5F55\u5E03\u5C40\u5F02\u5E38\uFF1F\uFF09"}}p(ye,"ensureGogocode");var tt=[".vue",".js",".jsx",".ts",".tsx"],st=p(e=>tt.some(t=>e.toLowerCase().endsWith(t)),"isSource");function Se(e,t,s,o){let i=s,n=o,r=0,c=p((a,f)=>{let u;try{u=i.readdirSync(a,{withFileTypes:!0})}catch{return}for(let d of u){let b=n.join(a,d.name),j=n.join(f,d.name);d.isDirectory()?c(b,j):st(d.name)&&(i.mkdirSync(n.dirname(j),{recursive:!0}),i.copyFileSync(b,j),r++)}},"walk");return c(e,t),r}p(Se,"copyBackSources");var je=/(install\s*=\s*function\s*\()\s*Vue\s*(\s*(?:,[^)]*)?\))/,ke=/(\binstall\s*\()\s*Vue\s*(\s*(?:,[^)]*)?\)\s*\{)/;function nt(e){let t=String(e||"");return je.test(t)?t.replace(je,"$1app$2"):ke.test(t)?t.replace(ke,"$1app$2"):t}p(nt,"renameInstallParam");var ot=p(e=>/install\s*=\s*function\s*\(\s*app\b/.test(String(e||""))||/\binstall\s*\(\s*app\b/.test(String(e||"")),"hasAppParam");function rt(e){return String(e||"").replace(/\bVue\.prototype\.(\$?[\w$]+)/g,"app.config.globalProperties.$1").replace(/\bVue\.(component|use|directive|mixin|provide)\b/g,"app.$1")}p(rt,"rewriteVueGlobals");function it(e){return String(e||"").replace(/\bwindow\.\$vueApp\b/g,"app")}p(it,"rewriteVueAppGlobal");function we(e){let t=nt(e);return ot(t)&&(t=rt(t)),t=it(t),t}p(we,"codemodLibEntry");var ct=/[;,{([<>=&|?:.+\-*/]$/,lt=/^(=>|\?|:|\.|\)|\]|\}|,|&&|\|\||\+|-|\*|\/|=)/,at=/[)\]\w'"`]$/;function pt(e){if(!/\n/.test(e))return{val:e,n:0};let t=e.split(`
12
- `),s=0;for(let o=0;o<t.length-1;o++){let i=t[o].replace(/\s+$/,"");if(!i.trimStart())continue;let r=(t.slice(o+1).find(c=>c.trim())||"").trim();r&&(ct.test(i)||lt.test(r)||at.test(i)&&(t[o]=i+";",s++))}return{val:t.join(`
13
- `),n:s}}p(pt,"fixValue");function Ee(e){let t=0;return{src:e.replace(/(?:v-bind)?:([\w-]+)\.sync="([^"]*)"/g,(o,i,n)=>(t++,`v-model:${i}="${n}"`)),count:t}}p(Ee,"fixSyncModifier");function Ve(e){let t=0;return{src:e.replace(/((?:@|v-on:)[\w.:-]+=")([^"]*)(")/g,(o,i,n,r)=>{let c=pt(n);return t+=c.n,i+c.val+r}),count:t}}p(Ve,"fixInlineHandlers");function _e(e){return e.startsWith("el-icon-")?e:"el-icon-"+e.replace(/^ElIcon/,"").replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z][a-z])/g,"$1-$2").toLowerCase()}p(_e,"toCssClass");function Oe(e){let t=0,s=e;return s=s.replace(/import\s*\{[\s\S]*?\}\s*from\s*['"]@element-plus\/icons-vue['"];?[ \t]*\r?\n?/g,()=>(t++,"")),s=s.replace(/<el-icon\b[^>]*>\s*<(el-icon-[\w-]+|ElIcon[A-Za-z0-9]+)\s*\/>\s*<\/el-icon>/g,(o,i)=>(t++,`<i class="${_e(i)}"></i>`)),s=s.replace(/<(ElIcon[A-Za-z0-9]+)\s*\/>/g,(o,i)=>(t++,`<i class="${_e(i)}"></i>`)),s=s.replace(/^[ \t]*ElIcon[A-Za-z0-9]+,[ \t]*\r?\n/gm,()=>(t++,"")),{src:s,count:t}}p(Oe,"fixElIcon");var ut=new Set(["vue","vuex","vue-router"]);function Fe(e){let t=e,s=0,o=/import\s*\*\s*as\s+([A-Za-z_$][\w$]*)\s+from\s+['"]([^'"]+)['"]\s*;?[ \t]*\r?\n?/g,i=[...t.matchAll(o)].filter(n=>ut.has(n[2]));for(let n of i){let r=n[0],c=n[1],a=n[2],f=new RegExp("\\b"+c+"\\.([A-Za-z_$][\\w$]*)","g"),u=new Set,d;for(;d=f.exec(t);)u.add(d[1]);if(u.size===0)t=t.replace(r,"");else{let b=[...u].join(", ");t=t.replace(r,`import { ${b} } from '${a}'
14
- `),t=t.replace(new RegExp("\\b"+c+"\\.([A-Za-z_$][\\w$]*)","g"),"$1")}s++}return{src:t,count:s}}p(Fe,"fixNamespaceImport");function ft(e){let t=e,s=0,o=/(\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*)require\.context\(\s*(['"])([^'"]+)\3\s*,\s*(true|false)\s*,\s*\/([^/]+)\/\s*\)/g,i=[...t.matchAll(o)];for(let n of i){let r=n[0],c=n[1],a=n[2],f=n[4],u=n[5],b=n[6].match(/\\?\.([a-zA-Z0-9]+)\$?$/),j=b?"."+b[1]:".*",R=f.replace(/\/+$/,"")+(u==="true"?"/**/*":"/*")+j;t=t.replace(r,`${c}import.meta.glob('${R}', { eager: true })`),t=t.replace(new RegExp("\\b"+a+"\\.keys\\(\\)","g"),`Object.keys(${a})`),t=t.replace(new RegExp("\\b"+a+"\\(\\s*([A-Za-z_$][\\w$]*)\\s*\\)","g"),`${a}[$1]`),s++}return{src:t,count:s}}p(ft,"fixRequireContext");function Ie(e){let t=/require\(\s*(['"])((?:@\/|\.\.?\/)[^'"]+\.(?:png|jpe?g|gif|svg|webp|bmp|ico))\1\s*\)/gi,s=new Map,o=p(c=>{if(s.has(c))return s.get(c);let f="__img_"+((c.split("/").pop()||"asset").replace(/\.[^.]+$/,"").replace(/[^A-Za-z0-9]/g,"_")||"x"),u=f,d=1,b=new Set(s.values());for(;b.has(u);)u=f+"_"+d++;return s.set(c,u),u},"mkVar"),i=0,n=e.replace(t,(c,a,f)=>(i++,o(f))),r=[...s.entries()].map(([c,a])=>`import ${a} from '${c}'`).join(`
15
- `);return{body:n,imports:r,count:i}}p(Ie,"collectRequireAsset");function Ae(e,t={}){let s=!!t.isVue,o=0,i=!1,n=e,r=ft(n);if(n=r.src,o+=r.count,s){let c=n.match(/(<script(?:\s[^>]*)?>)([\s\S]*?)(<\/script>)/);if(c){let a=Ie(c[2]);if(a.count){let u=`
16
- `+a.imports+`
17
- `+a.body.replace(/^\n?/,"");n=n.slice(0,c.index)+c[1]+u+c[3]+n.slice(c.index+c[0].length),o+=a.count}let f=n.replace(/<script(?:\s[^>]*)?>[\s\S]*?<\/script>/,"");/require\(\s*['"](?:@\/|\.\.?\/)[^'"]+\.(?:png|jpe?g|gif|svg|webp|bmp|ico)['"]\s*\)/i.test(f)&&(i=!0)}}else{let c=Ie(n);c.count&&(n=c.imports+`
18
- `+c.body,o+=c.count)}return{src:n,count:o,templateAsset:i}}p(Ae,"viteSourceCodemod");function De(e){let t=e,s=0;t=t.replace(/\bdomPropsInnerHTML=/g,()=>(s++,"innerHTML=")),t=t.replace(/\bdomPropsValue=/g,()=>(s++,"value=")),t=t.replace(/\bnativeOn([A-Z]\w*)=/g,(n,r)=>(s++,"on"+r+"=")),t=t.replace(/\bscopedSlots=\{\{/g,()=>(s++,"v-slots={{"));let o=[],i=t.search(/<script\b/);if(i>=0){let n={};for(let r of t.slice(i).matchAll(/\bslot=["']([^"']+)["']/g))n[r[1]]=(n[r[1]]||0)+1;for(let r of Object.keys(n))o.push(`JSX \u5177\u540D\u63D2\u69FD slot="${r}" \xD7${n[r]} \u2192 \u9700\u4EBA\u5DE5\u6539 v-slots\uFF08el-popover reference / el-dialog footer\xB7title \u4F1A\u5931\u6548\uFF1Bel-dropdown dropdown \u901A\u5E38\u4ECD\u6B63\u5E38\uFF0C\u9010\u4E2A\u4E0A\u771F\u73AF\u5883\u70B9\u5F00\u786E\u8BA4\uFF09`)}return{src:t,count:s,warnings:o}}p(De,"fixJsxVue2");var Le=Be(Ze(),1);var mt=p(e=>e&&!e.computed&&(e.key?.name==="runtime"||e.key?.value==="runtime"),"isRuntime"),Re=p(e=>e?.type==="ObjectExpression"&&mt(e.properties.at(-1))&&e.properties.at(-1).value?.value==="vue3","hasVue3");function Pe(e){try{let t=(0,Le.parse)(e,{sourceType:"module",plugins:["jsx"]}),s=t.program.body.find(u=>u.type==="ExportDefaultDeclaration");if(!s)return{src:e,marked:!1,reason:"\u672A\u627E\u5230\u9ED8\u8BA4\u5BFC\u51FA\u7684\u5E93\u5BF9\u8C61"};let o=s.declaration,i=t.program.body[t.program.body.indexOf(s)-1]?.expression;if(o.type==="Identifier"&&i?.type==="AssignmentExpression"&&i.left.type==="MemberExpression"&&!i.left.computed&&i.left.object.name===o.name&&i.left.property.name==="runtime"&&i.right.value==="vue3")return{src:e,marked:!0};let n=o.type==="CallExpression"&&o.callee.type==="MemberExpression"&&!o.callee.computed&&o.callee.object.name==="Object"&&o.callee.property.name==="assign";if(Re(o)||n&&Re(o.arguments.at(-1)))return{src:e,marked:!0};let r=e.slice(s.start,s.end),c=r.replace(/^export\s+default\b/,"").trim().replace(/;$/,"");if(c===r)return{src:e,marked:!1,reason:"\u9ED8\u8BA4\u5BFC\u51FA\u8BED\u6CD5\u4E0D\u652F\u6301\u81EA\u52A8\u6539\u5199"};let a=/^(Function|Class)Declaration$/.test(o.type)&&o.id?`${c}
2
+ import{a as Ce}from"../chunks/HSJSTJH6.mjs";import{a as Pe}from"../chunks/QL4QZFQT.mjs";import{a as Ie}from"../chunks/6CGUHPTB.mjs";import{a as l,c as Ee}from"../chunks/H4POBCHI.mjs";import h from"node:fs";import he from"node:os";import F from"node:path";import{execSync as de,spawnSync as rt}from"node:child_process";import{fileURLToPath as Ht}from"node:url";var ee={"epx-frame":{target:"^5.3.0",note:"Vue3 \u7248 epx-frame\uFF08\u53D1\u5E03\u540E\u586B\u5B9E\u9645\u7248\u672C\uFF1B\u89C1 docs/build-and-publish.md \xA7\u2461\uFF09"},"@vue/cli-service":{target:"~5.0.8",dev:!0},"@vue/cli-plugin-babel":{target:"~5.0.8",dev:!0},"@vue/cli-plugin-eslint":{target:"~5.0.8",dev:!0},"@vue/cli-plugin-router":{target:"~5.0.8",dev:!0},"@vue/cli-plugin-vuex":{target:"~5.0.8",dev:!0},"@vue/cli-plugin-pwa":{target:"~5.0.8",dev:!0},"vue-template-compiler":{target:null,note:"Vue3 \u65E0\u6B64\u5305 \u2192 @vue/compiler-sfc\uFF08\u968F vue \u5305\u5185\u7F6E\uFF09"},"eslint-plugin-vue":{target:"^9.33.0",dev:!0},eslint:{target:"^8.57.0",dev:!0,note:"6\u21928 \u5BF9\u9F50\u5E73\u53F0\uFF08plugin-vue9/cli-plugin-eslint5 \u7684 peer\uFF09"},"babel-eslint":{target:null,dev:!0,note:"\u5F03\u7528 \u2192 @babel/eslint-parser\uFF08lint \u914D\u7F6E\u91CD\u5EFA\u65F6\u6309\u9700\u52A0\uFF09"},"@vue/eslint-config-standard":{target:null,dev:!0,note:"v5 \u7ED1 eslint6\uFF1Blint \u914D\u7F6E\u6309\u5E73\u53F0 .eslintrc \u91CD\u5EFA"},"eslint-plugin-import":{target:null,dev:!0,note:"\u8001 standard \u5957\u4EF6\u6210\u5458\uFF0C\u968F lint \u914D\u7F6E\u91CD\u5EFA"},"eslint-plugin-node":{target:null,dev:!0,note:"\u540C\u4E0A"},"eslint-plugin-promise":{target:null,dev:!0,note:"\u540C\u4E0A"},"eslint-plugin-standard":{target:null,dev:!0,note:"\u540C\u4E0A"},"element-ui":{target:null,note:"\u2192 \u5E73\u53F0\u8FD0\u884C\u65F6\u63D0\u4F9B element-plus\uFF1B\u9879\u76EE\u5185 import \u5904\u4EBA\u5DE5\u6E05\u7406"},"babel-plugin-component":{target:null,dev:!0,note:"element-ui \u6309\u9700\u5F15\u5165\u63D2\u4EF6\uFF0C\u5F03\u7528\uFF08babel.config \u7531\u5DE5\u5177\u540C\u6B65\u6E05\u7406\uFF09"},"vue-cli-plugin-element":{target:null,dev:!0,note:"element-ui \u7684 vue-cli \u63D2\u4EF6\uFF0C\u5F03\u7528"},"babel-plugin-import":{target:null,dev:!0,note:"vant \u6309\u9700\u5F15\u5165\uFF0C\u5F03\u7528\uFF08babel.config \u7531\u5DE5\u5177\u540C\u6B65\u6E05\u7406\uFF09"},vue:{target:"^3.5.13",note:"\u82E5\u9879\u76EE\u76F4\u63A5\u4F9D\u8D56 vue"},"vue-router":{target:"^4.6.0"},vuex:{target:"^4.1.0"}},Ae={webpack:"^5.97.1","webpack-cli":"^5.1.4","vue-loader":"^17.4.2",vue:"^3.5.13","babel-loader":"^9.2.1","@babel/core":"^7.26.0","@babel/preset-env":"^7.26.0","css-loader":"^6.11.0","mini-css-extract-plugin":"^2.9.2","sass-loader":"^13.3.3","clean-webpack-plugin":"^4.0.0","url-loader":"^4.1.1","file-loader":"^6.2.0"},re={"gogocode-cli":"^0.2.28","gogocode-plugin-vue":"^1.0.29","gogocode-plugin-element":"^0.0.3"},Fe={"@vue/babel-plugin-jsx":"^1.2.5"},$e={"@element-plus/icons-vue":"^2.3.1"},ae={signature_pad:"^5.1.3",sortablejs:"^1.15.7",moment:"^2.30.1","js-cookie":"^3.0.5",axios:"^1.18.1","lodash-es":"^4.17.21",lodash:"^4.17.21"},Le=['externals \u5DF2\u7531\u5DE5\u5177\u8FFD\u52A0 { vue: window.frame.Vue }\u2014\u2014Vue3 \u7F16\u8BD1\u4EA7\u7269 import "vue"\uFF0C\u8FD0\u884C\u65F6\u7531\u5E73\u53F0\u63D0\u4F9B\uFF0C\u522B\u6253\u8FDB bundle',"DefinePlugin \u7684 process.env \u4FDD\u7559\uFF08IP/BASE_* \u7531\u90E8\u7F72\u73AF\u5883\u6CE8\u5165\uFF09","browserslist/babel targets \u82E5\u542B ie\uFF08Vue3 \u4E0D\u652F\u6301 IE\uFF09\uFF0C\u5EFA\u8BAE\u66F4\u65B0\u4E3A\u73B0\u4EE3\u6D4F\u89C8\u5668"],te={"vue-orgchart-direction":{note:"\u7EC4\u7EC7\u67B6\u6784\u56FE\uFF08Vue2 \u7EC4\u4EF6\u5E93\uFF0C\u65E0 Vue3 \u7248\uFF09\u3002Vue3 \u4EA7\u7269\u8FD0\u884C\u65F6\u62A5 _c undefined\u3002\u5EFA\u8BAE\u6362 Vue3 \u517C\u5BB9\u7684\u7EC4\u7EC7\u67B6\u6784\u56FE\u5E93\uFF0C\u6216\u7528 SVG/canvas \u81EA\u5B9E\u73B0\u3002"},"vue-bpmn":{note:"BPMN \u6D41\u7A0B\u56FE\u7684 Vue2 \u5C01\u88C5\u7EC4\u4EF6\uFF0C\u65E0 Vue3 \u7248\u3002\u5EFA\u8BAE\u76F4\u63A5\u7528\u6846\u67B6\u65E0\u5173\u7684 bpmn-js \u81EA\u5C01\u88C5\uFF0C\u6216\u627E Vue3 \u5C01\u88C5\u3002"},"vue-quill-editor":{note:"\u5BCC\u6587\u672C\u7F16\u8F91\u5668\uFF08Vue2 \u7248\uFF0C3.x \u5DF2\u505C\u66F4\u672A\u51FA Vue3\uFF09\u3002Vue3 \u6362 @vueup/vue-quill\u3002"},vuedraggable:{note:"\u62D6\u62FD\u6392\u5E8F\uFF1A2.x \u4E3A Vue2 \u7248\u3002Vue3 \u7528\u540C\u540D vuedraggable@4\uFF08\u82E5\u9879\u76EE\u5DF2\u5347\u5230 4.x \u5219\u5FFD\u7565\u672C\u6761\uFF09\u3002"}};var ft=/import\.meta\.glob\(\s*(['"])([^'"]+)\1\s*,\s*\{\s*eager\s*:\s*true\s*\}\s*\)/;function we(e){let t=ft.exec(String(e||""));return t?t[2]:null}l(we,"extractGlobPattern");function yt(e){let t=String(e||""),n=t.includes("vite-plugin-lazy-lib"),o=/lazyLib\s*\(/.test(t);return n&&o?"present":n||o?"half":"absent"}l(yt,"lazyLibState");var Te=l(e=>/'/.test(e)?JSON.stringify(e):`'${e}'`,"q"),bt=`import lazyLib from 'epx-frame/build/vite-plugin-lazy-lib.mjs'
3
+ `,ht=/^([ \t]*)frameDeps\s*\(\s*\)\s*,?[^\n]*$/m;function Me(e,{glob:t,pkgName:n}){let o=String(e||""),s=yt(o);if(s!=="absent")return{src:o,status:s};let i=ht.exec(o);if(!i)return{src:o,status:"no-anchor"};let p=i[1],r=`
4
+ ${p}// \u6253\u5305\u5F62\u6001\uFF1A\u9ED8\u8BA4\u6574\u4F53\u5355\u4F53\uFF08\u4E0E\u5386\u53F2\u4E00\u81F4\uFF09\u3002npm run build:lib:lazy \u5207\u5230\u300C\u6E05\u5355 + \u7EC4\u4EF6\u6309\u9700\u52A0\u8F7D\u300D\uFF0C
5
+ ${p}// \u90E8\u7F72\u65F6\u5FC5\u987B\u4E0A\u4F20\u6574\u4E2A lib/ \u76EE\u5F55\uFF08\u4E0D\u518D\u662F index.js + index.css \u4E24\u4E2A\u6587\u4EF6\uFF09\u3002
6
+ ${p}lazyLib({ enabled: process.env.LAZY_LIB === 'true', glob: ${Te(t)}, pkgName: ${Te(n)} }),`,m=o.slice(0,i.index+i[0].length)+r+o.slice(i.index+i[0].length),a=0;if(m.startsWith("#!")){let v=m.indexOf(`
7
+ `);a=v===-1?m.length:v+1}let u=/^([ \t]*\/\/[^\n]*\r?\n|[ \t]*\r?\n)/,y;for(;y=m.slice(a).match(u);)a+=y[0].length;return m=m.slice(0,a)+bt+m.slice(a),{src:m,status:"injected"}}l(Me,"injectLazyLib");function je(e){let t=e||{},n={...t,scripts:{...t.scripts||{}}},o=!1;n.scripts["build:lib:lazy"]||(n.scripts["build:lib:lazy"]="cross-env LAZY_LIB=true vite build",o=!0);let s=!!(t.dependencies||{})["cross-env"],i=!!(t.devDependencies||{})["cross-env"];return!s&&!i?(n.devDependencies={...t.devDependencies||{},"cross-env":"^7.0.3"},o=!0):t.devDependencies&&(n.devDependencies={...t.devDependencies}),{pkg:n,changed:o}}l(je,"addLazyScripts");import{TEMPLATES as Re}from"../epx-create/scaffold.mjs";var vt=["webpack","webpack-cli","webpack-merge","vue-loader","vue-template-compiler","css-loader","sass-loader","sass-resources-loader","style-loader","postcss-loader","node-sass","fibers","mini-css-extract-plugin","clean-webpack-plugin","progress-bar-webpack-plugin","url-loader","file-loader","raw-loader","babel-loader","@babel/core","@babel/preset-env","@vue/cli-service","@vue/cli-plugin-babel","@vue/cli-plugin-router","@vue/cli-plugin-vuex","@vue/cli-plugin-eslint","@vue/cli-plugin-pwa"];function kt(e){let t=e,n=!1,o=/require\.context\(\s*['"]@\/([^'"]+)['"]\s*,\s*true\s*,\s*\/\\?\.vue\$?\/\s*\)/,s=t.match(o);return s&&(t=t.replace(o,`import.meta.glob('./${s[1]}/**/*.vue', { eager: true })`),n=!0),/\bfiles\.keys\(\)/.test(t)&&(t=t.replace(/\bfiles\.keys\(\)/g,"Object.keys(files)"),n=!0),/\bfiles\(([\w$]+)\)/.test(t)&&(t=t.replace(/\bfiles\(([\w$]+)\)/g,"files[$1]"),n=!0),/require\(\s*['"]\.\.\/package\.json['"]\s*\)/.test(t)&&(t=t.replace(/require\(\s*['"]\.\.\/package\.json['"]\s*\)/g,"pkg"),/import\s+pkg\s+from\s+['"]\.\.\/package\.json['"]/.test(t)||(t=`import pkg from '../package.json'
8
+ `+t),n=!0),{src:t,changed:n}}l(kt,"viteEntryCodemod");function _e({read:e,epxFrameSpec:t,basePkgRaw:n}){let o=[],s=[],i=n||e("package.json");if(!i)return{changes:o,manual:["\u65E0 package.json\uFF0C\u65E0\u6CD5\u505A vite \u5316"],info:{}};let p;try{p=JSON.parse(i)}catch(x){return{changes:o,manual:["package.json \u89E3\u6790\u5931\u8D25\uFF1A"+x.message],info:{}}}let r=String(p.name||"").toLowerCase(),m=["src/index.js","index.js"].find(x=>e(x)!=null),a=m?e(m):"",u=/import\.meta\.glob/.test(a),y=null,v=a.match(/require\.context\(\s*['"]@\/([^'"]+)['"]/);if(v)y=v[1];else if(u){let x=a.match(/import\.meta\.glob\(\s*['"]\.\/([^/'"]+)\//);x&&(y=x[1])}y||(y=r,s.push("\u5165\u53E3\u672A\u7528 require.context(@/X)\uFF0C\u65E0\u6CD5\u81EA\u52A8\u786E\u5B9A\u7EC4\u4EF6\u76EE\u5F55\u540D\uFF1B\u5DF2\u6309\u5305\u540D\u515C\u5E95\u586B vite.config \u7684 glob\uFF0C\u8BF7\u6838\u5BF9 lazyLib \u7684 glob \u4E0E\u5165\u53E3 import.meta.glob \u9010\u5B57\u4E00\u81F4\u3002"));let A=`./${y}/**/*.vue`;if(e("vite.config.mjs")!=null||e("vite.config.js")!=null||e("vite.config.ts")!=null)s.push("\u5DF2\u5B58\u5728 vite.config.*\uFF0C\u672A\u8986\u76D6\u3002\u82E5\u8981\u6309\u6A21\u677F\u91CD\u5EFA\uFF0C\u5148\u5220\u9664\u73B0\u6709 vite.config.* \u518D\u91CD\u8DD1 --to-vite\u3002");else{let x=Re["vite.config.mjs"].replaceAll("__NAME__",r).replaceAll("__DIRNAME__",y);o.push({file:"vite.config.mjs",after:x})}let L=t||p.dependencies&&p.dependencies["epx-frame"]||"^5.3.0",f=JSON.parse(Re["package.json"].replaceAll("__NAME__",r).replaceAll("__EPX_FRAME__",L));p.runtime=f.runtime,p.scripts={...p.scripts||{},...f.scripts},p.devDependencies=p.devDependencies||{};for(let[x,S]of Object.entries(f.devDependencies))p.devDependencies[x]=S;let k=[];for(let x of["dependencies","devDependencies"])if(p[x])for(let S of Object.keys(p[x]))vt.includes(S)&&(delete p[x][S],k.push(S));o.push({file:"package.json",after:JSON.stringify(p,null,2)+`
9
+ `});for(let x of["webpack.config.js","vue.config.js","babel.config.js"])e(x)!=null&&o.push({file:x,remove:!0});if(m&&/require\.context/.test(a)){let x=kt(a);x.changed?(o.push({file:m,after:x.src}),s.push(`\u5165\u53E3 ${m} \u5DF2\u81EA\u52A8\u6539\u5199\uFF08require.context\u2192import.meta.glob\u3001files(k)\u2192files[k]\u3001require(pkg)\u2192import\uFF09\uFF1B\u8BF7\u590D\u6838\u5165\u53E3\u91CC router.addRoute / store \u6CE8\u518C / install \u7B49\u9879\u76EE\u7279\u6709\u903B\u8F91\uFF0C\u5E76\u786E\u8BA4 install \u5DF2\u662F Vue3 \u7684 install(app)\uFF08\u672A\u8FC1\u9879\u76EE\u5148\u8DD1 \u2460 --apply + \u2462 --transform-vue\uFF09\u3002`)):s.push(`\u5165\u53E3 ${m} \u7528\u4E86\u975E\u6807\u51C6 require.context \u6536\u96C6\uFF0C\u672A\u80FD\u81EA\u52A8\u6539\u5199\uFF0C\u8BF7\u624B\u52A8\u6362\u6210 import.meta.glob('${A}', { eager: true }) + Object.keys(files) \u6536\u96C6\uFF0C\u5E76\u628A require('../package.json') \u6539\u6210 import\u3002`)}let c=(e("webpack.config.js")||"")+`
10
+ `+(e("vue.config.js")||"");if(/sass-resources-loader/.test(c)){let x=c.match(/resources:\s*path\.resolve\([^,]*,\s*['"]([^'"]+)['"]/);s.push(`scss \u5168\u5C40\u6CE8\u5165\uFF1A\u65E7\u914D\u7F6E\u7528 sass-resources-loader \u6CE8\u5165 ${x?"`"+x[1]+"`\uFF08\u9879\u76EE\u5185\uFF09":"(\u9879\u76EE\u5185 scss)"}\uFF1Bvite.config \u6A21\u677F\u9ED8\u8BA4\u6CE8\u5165\u7684\u662F epx-frame \u6846\u67B6 mixins\u3002\u9879\u76EE\u82E5\u6709\u81EA\u5DF1\u7684\u5168\u5C40 mixins\uFF0C\u628A vite.config \u7684 css.preprocessorOptions.scss.additionalData \u6307\u8FC7\u53BB\u3002`)}/DefinePlugin/.test(c)&&/process\.env/.test(c)&&s.push("\u65E7\u914D\u7F6E\u7528 DefinePlugin \u628A process.env\uFF08IP / BASE_* \u7B49\uFF09\u7F16\u8BD1\u8FDB\u4EA7\u7269\uFF1BVite \u5F62\u6001\u6539\u7531 .env* + \u5E73\u53F0\u8FD0\u884C\u65F6 window.* \u63D0\u4F9B\uFF08\u6A21\u677F dev \u58F3\u7684 inject-window-config \u5DF2\u63A5 .env\uFF09\u3002\u6838\u5BF9\u8FD9\u4E9B\u503C\u662F\u5426\u5DF2\u7531\u5E73\u53F0\u63D0\u4F9B\uFF0C\u6216\u8FC1\u5230 .env.development\u3002");let d=c.match(/url-loader[\s\S]{0,120}?limit:\s*([0-9*\s]+)/);d&&s.push(`\u65E7\u914D\u7F6E\u7528 url-loader \u5185\u8054\u5C0F\u8D44\u6E90\uFF08limit\u2248${d[1].trim()} \u5B57\u8282\uFF09\uFF1BVite \u7528 build.assetsInlineLimit\uFF08\u9ED8\u8BA4 4096\uFF09\u3002\u9608\u503C\u5DEE\u5F02\u5927\u65F6\u5728 vite.config \u7684 build \u91CC\u8865 assetsInlineLimit\u3002`);let b=c.match(/externals:\s*([^\n]+)/);if(b){let x=["recorder","echarts","xlsx","jspdf","luckysheet","pdfjs","signature"].filter(S=>new RegExp(S,"i").test(b[1]));x.length&&s.push(`\u65E7 externals \u542B\u6A21\u677F\u9ED8\u8BA4\u672A\u8986\u76D6\u7684\u5E93\uFF1A${x.join(", ")}\u3002\u6A21\u677F\u9ED8\u8BA4 external \u4E3A vue / epx-frame / element-* / bpmn\uFF1B\u5176\u4F59\u9700\u5728 vite.config \u7684 rollupOptions.external + output.globals \u91CC\u8865\uFF08\u53C2\u8003 hr \u7684 vite.config\uFF1Arecorder-core \u2192 window.Recorder \u7684 shim \u5199\u6CD5\uFF09\u3002`)}return{changes:o,manual:s,info:{pkgName:r,dirName:y,glob:A,removedDeps:k}}}l(_e,"planToVite");var St=/import\s+(\w+)\s*,\s*\{([^}]*)\}\s*from\s*(['"])epx-frame\3/;function De(e){let t=String(e||""),n=St.exec(t);if(!n)return t;let[o,s,i,p]=n,r=t.slice(0,n.index)+t.slice(n.index+o.length),m=i.split(",").map(u=>u.trim()).filter(Boolean).filter(u=>{let y=u.split(/\s+as\s+/).pop().trim();return/^[A-Za-z_$][\w$]*$/.test(y)?new RegExp(`(^|[^.\\w$])${y}\\b`).test(r):!0}),a=m.length?`import ${s}, { ${m.join(", ")} } from ${p}epx-frame${p}`:`import ${s} from ${p}epx-frame${p}`;return t.slice(0,n.index)+a+t.slice(n.index+o.length)}l(De,"collapseFrameImport");import ce from"node:path";var Et=["gogocode-plugin-vue","gogocode-plugin-element"];function Ne(e,t){for(let n of e||[]){if(!n)continue;let o=ce.join(n,"node_modules"),s=ce.join(o,"gogocode-cli","index.js");if(t(s)&&!Et.some(i=>!t(ce.join(o,i))))return s}return null}l(Ne,"findGogocode");function It({projectDir:e,toolDir:t,cacheDir:n}){return[e,t,n].filter(Boolean)}l(It,"gogocodeRoots");function Ve({projectDir:e,toolDir:t,cacheDir:n,versions:o,exists:s,install:i,log:p}){let r=p||(()=>{}),m=It({projectDir:e,toolDir:t,cacheDir:n}),a=Ne(m,s);if(a)return{cli:a,installed:!1};let u=Object.entries(o||{}).map(([v,A])=>`${v}@${A}`);if(!u.length)return{cli:null,installed:!1,error:"\u6CA1\u6709\u53EF\u5B89\u88C5\u7684 gogocode \u7248\u672C\u6E05\u5355"};r(` \xB7 \u672A\u627E\u5230 gogocode\uFF0C\u6B63\u5728\u88C5\u8FDB\u7F13\u5B58\u76EE\u5F55\uFF08\u7EA6 149 \u4E2A\u5305\uFF0C\u9996\u6B21\u51E0\u5341\u79D2\uFF0C\u4E4B\u540E\u590D\u7528\uFF09\uFF1A
11
+ ${n}`);try{i({cacheDir:n,specs:u})}catch(v){return{cli:null,installed:!1,error:String(v&&v.message||v).slice(0,200)}}let y=Ne([n],s);return y?{cli:y,installed:!0}:{cli:null,installed:!0,error:"\u5B89\u88C5\u5B8C\u6210\u4F46\u4ECD\u89E3\u6790\u4E0D\u5230 gogocode\uFF08\u7F13\u5B58\u76EE\u5F55\u5E03\u5C40\u5F02\u5E38\uFF1F\uFF09"}}l(Ve,"ensureGogocode");var Ct=[".vue",".js",".jsx",".ts",".tsx"],Pt=l(e=>Ct.some(t=>e.toLowerCase().endsWith(t)),"isSource");function Oe(e,t,n,o){let s=n,i=o,p=0,r=l((m,a)=>{let u;try{u=s.readdirSync(m,{withFileTypes:!0})}catch{return}for(let y of u){let v=i.join(m,y.name),A=i.join(a,y.name);y.isDirectory()?r(v,A):Pt(y.name)&&(s.mkdirSync(i.dirname(A),{recursive:!0}),s.copyFileSync(v,A),p++)}},"walk");return r(e,t),p}l(Oe,"copyBackSources");var Be=/(install\s*=\s*function\s*\()\s*Vue\s*(\s*(?:,[^)]*)?\))/,Ue=/(\binstall\s*\()\s*Vue\s*(\s*(?:,[^)]*)?\)\s*\{)/;function At(e){let t=String(e||"");return Be.test(t)?t.replace(Be,"$1app$2"):Ue.test(t)?t.replace(Ue,"$1app$2"):t}l(At,"renameInstallParam");var Ft=l(e=>/install\s*=\s*function\s*\(\s*app\b/.test(String(e||""))||/\binstall\s*\(\s*app\b/.test(String(e||"")),"hasAppParam");function $t(e){return String(e||"").replace(/\bVue\.prototype\.(\$?[\w$]+)/g,"app.config.globalProperties.$1").replace(/\bVue\.(component|use|directive|mixin|provide)\b/g,"app.$1")}l($t,"rewriteVueGlobals");function Lt(e){return String(e||"").replace(/\bwindow\.\$vueApp\b/g,"app")}l(Lt,"rewriteVueAppGlobal");function Ge(e){let t=At(e);return Ft(t)&&(t=$t(t)),t=Lt(t),t}l(Ge,"codemodLibEntry");var Tt=/[;,{([<>=&|?:.+\-*/]$/,wt=/^(=>|\?|:|\.|\)|\]|\}|,|&&|\|\||\+|-|\*|\/|=)/,Mt=/[)\]\w'"`]$/;function jt(e){if(!/\n/.test(e))return{val:e,n:0};let t=e.split(`
12
+ `),n=0;for(let o=0;o<t.length-1;o++){let s=t[o].replace(/\s+$/,"");if(!s.trimStart())continue;let p=(t.slice(o+1).find(r=>r.trim())||"").trim();p&&(Tt.test(s)||wt.test(p)||Mt.test(s)&&(t[o]=s+";",n++))}return{val:t.join(`
13
+ `),n}}l(jt,"fixValue");function He(e){let t=0;return{src:e.replace(/(?:v-bind)?:([\w-]+)\.sync="([^"]*)"/g,(o,s,i)=>(t++,`v-model:${s}="${i}"`)),count:t}}l(He,"fixSyncModifier");function ze(e){let t=0;return{src:e.replace(/((?:@|v-on:)[\w.:-]+=")([^"]*)(")/g,(o,s,i,p)=>{let r=jt(i);return t+=r.n,s+r.val+p}),count:t}}l(ze,"fixInlineHandlers");function We(e){return e.startsWith("el-icon-")?e:"el-icon-"+e.replace(/^ElIcon/,"").replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z][a-z])/g,"$1-$2").toLowerCase()}l(We,"toCssClass");function Je(e){let t=0,n=e;return n=n.replace(/import\s*\{[\s\S]*?\}\s*from\s*['"]@element-plus\/icons-vue['"];?[ \t]*\r?\n?/g,()=>(t++,"")),n=n.replace(/<el-icon\b[^>]*>\s*<(el-icon-[\w-]+|ElIcon[A-Za-z0-9]+)\s*\/>\s*<\/el-icon>/g,(o,s)=>(t++,`<i class="${We(s)}"></i>`)),n=n.replace(/<(ElIcon[A-Za-z0-9]+)\s*\/>/g,(o,s)=>(t++,`<i class="${We(s)}"></i>`)),n=n.replace(/^[ \t]*ElIcon[A-Za-z0-9]+,[ \t]*\r?\n/gm,()=>(t++,"")),{src:n,count:t}}l(Je,"fixElIcon");var Rt=new Set(["vue","vuex","vue-router"]);function qe(e){let t=e,n=0,o=/import\s*\*\s*as\s+([A-Za-z_$][\w$]*)\s+from\s+['"]([^'"]+)['"]\s*;?[ \t]*\r?\n?/g,s=[...t.matchAll(o)].filter(i=>Rt.has(i[2]));for(let i of s){let p=i[0],r=i[1],m=i[2],a=new RegExp("\\b"+r+"\\.([A-Za-z_$][\\w$]*)","g"),u=new Set,y;for(;y=a.exec(t);)u.add(y[1]);if(u.size===0)t=t.replace(p,"");else{let v=[...u].join(", ");t=t.replace(p,`import { ${v} } from '${m}'
14
+ `),t=t.replace(new RegExp("\\b"+r+"\\.([A-Za-z_$][\\w$]*)","g"),"$1")}n++}return{src:t,count:n}}l(qe,"fixNamespaceImport");function _t(e){let t=e,n=0,o=/(\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*)require\.context\(\s*(['"])([^'"]+)\3\s*,\s*(true|false)\s*,\s*\/([^/]+)\/\s*\)/g,s=[...t.matchAll(o)];for(let i of s){let p=i[0],r=i[1],m=i[2],a=i[4],u=i[5],v=i[6].match(/\\?\.([a-zA-Z0-9]+)\$?$/),A=v?"."+v[1]:".*",L=a.replace(/\/+$/,"")+(u==="true"?"/**/*":"/*")+A;t=t.replace(p,`${r}import.meta.glob('${L}', { eager: true })`),t=t.replace(new RegExp("\\b"+m+"\\.keys\\(\\)","g"),`Object.keys(${m})`),t=t.replace(new RegExp("\\b"+m+"\\(\\s*([A-Za-z_$][\\w$]*)\\s*\\)","g"),`${m}[$1]`),n++}return{src:t,count:n}}l(_t,"fixRequireContext");function Ke(e){let t=/require\(\s*(['"])((?:@\/|\.\.?\/)[^'"]+\.(?:png|jpe?g|gif|svg|webp|bmp|ico))\1\s*\)/gi,n=new Map,o=l(r=>{if(n.has(r))return n.get(r);let a="__img_"+((r.split("/").pop()||"asset").replace(/\.[^.]+$/,"").replace(/[^A-Za-z0-9]/g,"_")||"x"),u=a,y=1,v=new Set(n.values());for(;v.has(u);)u=a+"_"+y++;return n.set(r,u),u},"mkVar"),s=0,i=e.replace(t,(r,m,a)=>(s++,o(a))),p=[...n.entries()].map(([r,m])=>`import ${m} from '${r}'`).join(`
15
+ `);return{body:i,imports:p,count:s}}l(Ke,"collectRequireAsset");function Xe(e,t={}){let n=!!t.isVue,o=0,s=!1,i=e,p=_t(i);if(i=p.src,o+=p.count,n){let r=i.match(/(<script(?:\s[^>]*)?>)([\s\S]*?)(<\/script>)/);if(r){let m=Ke(r[2]);if(m.count){let u=`
16
+ `+m.imports+`
17
+ `+m.body.replace(/^\n?/,"");i=i.slice(0,r.index)+r[1]+u+r[3]+i.slice(r.index+r[0].length),o+=m.count}let a=i.replace(/<script(?:\s[^>]*)?>[\s\S]*?<\/script>/,"");/require\(\s*['"](?:@\/|\.\.?\/)[^'"]+\.(?:png|jpe?g|gif|svg|webp|bmp|ico)['"]\s*\)/i.test(a)&&(s=!0)}}else{let r=Ke(i);r.count&&(i=r.imports+`
18
+ `+r.body,o+=r.count)}return{src:i,count:o,templateAsset:s}}l(Xe,"viteSourceCodemod");function Ye(e){let t=e,n=0;t=t.replace(/\bdomPropsInnerHTML=/g,()=>(n++,"innerHTML=")),t=t.replace(/\bdomPropsValue=/g,()=>(n++,"value=")),t=t.replace(/\bnativeOn([A-Z]\w*)=/g,(i,p)=>(n++,"on"+p+"=")),t=t.replace(/\bscopedSlots=\{\{/g,()=>(n++,"v-slots={{"));let o=[],s=t.search(/<script\b/);if(s>=0){let i={};for(let p of t.slice(s).matchAll(/\bslot=["']([^"']+)["']/g))i[p[1]]=(i[p[1]]||0)+1;for(let p of Object.keys(i))o.push(`JSX \u5177\u540D\u63D2\u69FD slot="${p}" \xD7${i[p]} \u2192 \u9700\u4EBA\u5DE5\u6539 v-slots\uFF08el-popover reference / el-dialog footer\xB7title \u4F1A\u5931\u6548\uFF1Bel-dropdown dropdown \u901A\u5E38\u4ECD\u6B63\u5E38\uFF0C\u9010\u4E2A\u4E0A\u771F\u73AF\u5883\u70B9\u5F00\u786E\u8BA4\uFF09`)}return{src:t,count:n,warnings:o}}l(Ye,"fixJsxVue2");var Qe=Ee(Ie(),1);var Dt=l(e=>e&&!e.computed&&(e.key?.name==="runtime"||e.key?.value==="runtime"),"isRuntime"),Ze=l(e=>e?.type==="ObjectExpression"&&Dt(e.properties.at(-1))&&e.properties.at(-1).value?.value==="vue3","hasVue3");function et(e){try{let t=(0,Qe.parse)(e,{sourceType:"module",plugins:["jsx"]}),n=t.program.body.find(u=>u.type==="ExportDefaultDeclaration");if(!n)return{src:e,marked:!1,reason:"\u672A\u627E\u5230\u9ED8\u8BA4\u5BFC\u51FA\u7684\u5E93\u5BF9\u8C61"};let o=n.declaration,s=t.program.body[t.program.body.indexOf(n)-1]?.expression;if(o.type==="Identifier"&&s?.type==="AssignmentExpression"&&s.left.type==="MemberExpression"&&!s.left.computed&&s.left.object.name===o.name&&s.left.property.name==="runtime"&&s.right.value==="vue3")return{src:e,marked:!0};let i=o.type==="CallExpression"&&o.callee.type==="MemberExpression"&&!o.callee.computed&&o.callee.object.name==="Object"&&o.callee.property.name==="assign";if(Ze(o)||i&&Ze(o.arguments.at(-1)))return{src:e,marked:!0};let p=e.slice(n.start,n.end),r=p.replace(/^export\s+default\b/,"").trim().replace(/;$/,"");if(r===p)return{src:e,marked:!1,reason:"\u9ED8\u8BA4\u5BFC\u51FA\u8BED\u6CD5\u4E0D\u652F\u6301\u81EA\u52A8\u6539\u5199"};let m=/^(Function|Class)Declaration$/.test(o.type)&&o.id?`${r}
19
19
  ${o.id.name}.runtime = 'vue3'
20
- export default ${o.id.name}`:`export default Object.assign(${c}, { runtime: 'vue3' })`;return{src:e.slice(0,s.start)+a+";"+e.slice(s.end),marked:!0}}catch(t){return{src:e,marked:!1,reason:t.message}}}p(Pe,"markLibraryRuntime");var D=process.argv.slice(2),G=D.indexOf("--epx-frame"),ee=G!==-1?D[G+1]:null;G!==-1&&D.splice(G,2);var E=D.find(e=>!e.startsWith("--")),T=D.includes("--apply"),te=D.includes("--transform-vue"),K=D.includes("--report-only"),gt=D.includes("--to-vite"),l=p((...e)=>console.log(...e),"log");ee&&(q["epx-frame"].target=ee);(!E||!m.existsSync(E))&&(console.error("\u7528\u6CD5\uFF1Anode tools/epx-migrate/migrate.mjs <\u8001\u9879\u76EE\u76EE\u5F55> [--apply] [--transform-vue] [--to-vite] [--report-only] [--epx-frame <spec>]"),process.exit(1));var F=p(e=>S.join(E,e),"rel"),w=p(e=>m.existsSync(F(e))?m.readFileSync(F(e),"utf8"):null,"read"),h=[],$=[],_=p(e=>l(`
20
+ export default ${o.id.name}`:`export default Object.assign(${r}, { runtime: 'vue3' })`;return{src:e.slice(0,n.start)+m+";"+e.slice(n.end),marked:!0}}catch(t){return{src:e,marked:!1,reason:t.message}}}l(et,"markLibraryRuntime");var X=Ee(Ie(),1);var q={"@epxing/core":{package:"@epxing/core",exports:{publishCoreRuntime:["publishCoreRuntime"],createCore:["createCore"],installCore:["installCore"],createApp:["createApp"],ComponentMixin:["ComponentMixin"],GlobalMixin:["GlobalMixin"],mixins:["mixins"],axios:["axios"],http:["http"],util:["util"],getSystemMeta:["getSystemMeta"],getFileUrl:["getFileUrl"],getSysId:["getSysId"],toLogin:["toLogin"],usePlugin:["usePlugin"],runExpByScope:["runExpByScope"],FieldFactory:["FieldFactory"],FieldFactoryClass:["FieldFactoryClass"],createFieldFactory:["createFieldFactory"],Meta:["Meta"],PdfViewer:["PdfViewer"],createFrameStore:["createFrameStore"],createStoreModules:["createStoreModules"],storeModules:["storeModules"],createFrameRouter:["createFrameRouter"],routerConfig:["routerConfig"],createEventBus:["createEventBus"],getEventBus:["getEventBus"],getApp:["getApp"],setApp:["setApp"],registerComponent:["registerComponent"],resolveComponent:["resolveComponent"],configureRuntime:["configureRuntime"],registerRouteComponents:["registerRouteComponents"],nav:["nav"],default:["default"]}},"@epxing/utils":{package:"@epxing/utils",exports:{Config:["Config"],Page:["Page"],placeholder:["placeholder"],storage:["storage"],getXsrfToken:["getXsrfToken"],setXsrfToken:["setXsrfToken"],cookie:["cookie"],moment:["moment"],dateTime:["dateTime"],createMoment:["createMoment"],lodash:["lodash"],PLACEHOLDER_RE:["PLACEHOLDER_RE"],lookup:["lookup"],resolveKey:["resolveKey"],resolvePlaceholders:["resolvePlaceholders"],isDate:["isDate"],getDayCountOfMonth:["getDayCountOfMonth"],getDayCountOfYear:["getDayCountOfYear"],nextDate:["nextDate"],nextMonth:["nextMonth"],prevYear:["prevYear"],nextYear:["nextYear"],range:["range"],modifyDate:["modifyDate"],modifyTime:["modifyTime"],modifyWithTimeString:["modifyWithTimeString"],hasClass:["hasClass"],arrayFindIndex:["arrayFindIndex"],coerceTruthyValueToArray:["coerceTruthyValueToArray"],cloneDeep:["cloneDeep"],isNil:["isNil"],isEmpty:["isEmpty"],isObject:["isObject"],isEqual:["isEqual"],assignWith:["assignWith"],debounce:["debounce"],throttle:["throttle"],get:["get"],set:["set"]}},"@epxing/components":{package:"@epxing/component",exports:{install:["install"],AddForm:["AddForm"],AddFormItem:["AddFormItem"],AiImportPage:["AiImportPage"],AiImport:["AiImport"],AiAgentPage:["AiAgentPage"],AiChatPage:["AiChatPage"],WikiSite:["WikiSite"],AiMetadataAssistant:["AiMetadataAssistant"],Alert:["Alert"],AppIndex:["AppIndex"],AppNav:["AppNav"],AppTabs:["AppTabs"],ApplyForm:["ApplyForm"],ApprovalIndex:["ApprovalIndex"],ApprovalIndexPage:["ApprovalIndexPage"],BasePage:["BasePage"],Button:["Button"],Card:["Card"],CardFormItem:["CardFormItem"],ActProcessFormItem:["ActProcessFormItem"],Carousel:["Carousel"],CategoryList:["CategoryList"],ReportChart:["ReportChart"],Chart:["Chart"],CheckHistory:["CheckHistory"],Collapse:["Collapse"],ColorPicker:["ColorPicker"],Component:["Component"],Contacts:["Contacts"],Div:["Div"],Dropdown:["Dropdown"],EditEntityList:["EditEntityList"],Empty:["Empty"],EntityAddPage:["EntityAddPage"],EntityApplyPage:["EntityApplyPage"],EntityCardList:["EntityCardList"],EntityList:["EntityList"],EntityListFind:["EntityListFind"],EntityListFindPage:["EntityListFindPage"],EntityListPage:["EntityListPage"],EntityNoSubmitSubList:["EntityNoSubmitSubList"],EntitySubGrid:["EntitySubGrid"],EntitySubGridItem:["EntitySubGridItem"],EntitySubList:["EntitySubList"],EntityTreeFind:["EntityTreeFind"],EntityTreeFindPage:["EntityTreeFindPage"],EntityVirtualList:["EntityVirtualList"],Export:["Export"],ExportFile:["ExportFile"],FlowNumStatistic:["FlowNumStatistic"],Footer:["Footer"],Form:["Form"],FormItem:["FormItem"],CheckBox:["CheckBox"],Color:["Color"],Date:["Date"],File:["File"],Input:["Input"],Number:["Number"],FormHtml:["FormHtml"],Object:["Object"],Photo:["Photo"],Radio:["Radio"],Rule:["Rule"],Scope:["Scope"],Select:["Select"],Switch:["Switch"],FormTag:["FormTag"],Textarea:["Textarea"],FormField:["FormField"],Formula:["Formula"],FormulaEditor:["FormulaEditor"],Gauge:["Gauge"],Grid:["Grid"],GridItem:["GridItem"],Header:["Header"],HeaderBreadcrumb:["HeaderBreadcrumb"],Html:["Html"],TabTags:["TabTags"],TabsBar:["TabsBar"],AppSettings:["AppSettings"],Icon:["Icon"],Iframe:["Iframe"],Image:["Image"],Import:["Import"],ImportFile:["ImportFile"],LayoutComponent:["LayoutComponent"],Link:["Link"],List:["List"],LoadPage:["LoadPage"],Login:["Login"],MEntityAddPage:["MEntityAddPage"],MEntityDeptFind:["MEntityDeptFind"],MEntityList:["MEntityList"],MEntityListFind:["MEntityListFind"],MEntityNoSubmitSubList:["MEntityNoSubmitSubList"],MEntityTreeFind:["MEntityTreeFind"],MEntityUserFind:["MEntityUserFind"],MEntitySubList:["MEntitySubList"],Menu:["Menu"],MenuItem:["MenuItem"],MenuIndex:["MenuIndex"],Mine:["Mine"],ModuleIndexPage:["ModuleIndexPage"],ModuleList:["ModuleList"],ModuleListPage:["ModuleListPage"],ModuleTabsPage:["ModuleTabsPage"],NavAddForm:["NavAddForm"],CardNum:["CardNum"],NumStatistic:["NumStatistic"],NumItem:["NumItem"],NumSubItem:["NumSubItem"],OrgChart:["OrgChart"],Page:["Page"],PageHelp:["PageHelp"],PageTabs:["PageTabs"],Pagination:["Pagination"],Progress:["Progress"],ProcessChart:["ProcessChart"],Report:["Report"],ReportHtml:["ReportHtml"],ReportPreview:["ReportPreview"],RouterView:["RouterView"],ScopeComponent:["ScopeComponent"],Search:["Search"],SearchBar:["SearchBar"],SearchList:["SearchList"],Step:["Step"],StepItem:["StepItem"],TabBar:["TabBar"],Tabs:["Tabs"],Tag:["Tag"],TaskList:["TaskList"],TaskListPage:["TaskListPage"],Template:["Template"],Text:["Text"],TextEditor:["TextEditor"],Title:["Title"],UpdateForm:["UpdateForm"],UpdateFormItem:["UpdateFormItem"],UpdateSubList:["UpdateSubList"],Video:["Video"],ConfigPage:["ConfigPage"],default:["default"]}},"@epxing/component":{package:"@epxing/component",exports:{install:["install"],AddForm:["AddForm"],AddFormItem:["AddFormItem"],AiImportPage:["AiImportPage"],AiImport:["AiImport"],AiAgentPage:["AiAgentPage"],AiChatPage:["AiChatPage"],WikiSite:["WikiSite"],AiMetadataAssistant:["AiMetadataAssistant"],Alert:["Alert"],AppIndex:["AppIndex"],AppNav:["AppNav"],AppTabs:["AppTabs"],ApplyForm:["ApplyForm"],ApprovalIndex:["ApprovalIndex"],ApprovalIndexPage:["ApprovalIndexPage"],BasePage:["BasePage"],Button:["Button"],Card:["Card"],CardFormItem:["CardFormItem"],ActProcessFormItem:["ActProcessFormItem"],Carousel:["Carousel"],CategoryList:["CategoryList"],ReportChart:["ReportChart"],Chart:["Chart"],CheckHistory:["CheckHistory"],Collapse:["Collapse"],ColorPicker:["ColorPicker"],Component:["Component"],Contacts:["Contacts"],Div:["Div"],Dropdown:["Dropdown"],EditEntityList:["EditEntityList"],Empty:["Empty"],EntityAddPage:["EntityAddPage"],EntityApplyPage:["EntityApplyPage"],EntityCardList:["EntityCardList"],EntityList:["EntityList"],EntityListFind:["EntityListFind"],EntityListFindPage:["EntityListFindPage"],EntityListPage:["EntityListPage"],EntityNoSubmitSubList:["EntityNoSubmitSubList"],EntitySubGrid:["EntitySubGrid"],EntitySubGridItem:["EntitySubGridItem"],EntitySubList:["EntitySubList"],EntityTreeFind:["EntityTreeFind"],EntityTreeFindPage:["EntityTreeFindPage"],EntityVirtualList:["EntityVirtualList"],Export:["Export"],ExportFile:["ExportFile"],FlowNumStatistic:["FlowNumStatistic"],Footer:["Footer"],Form:["Form"],FormItem:["FormItem"],CheckBox:["CheckBox"],Color:["Color"],Date:["Date"],File:["File"],Input:["Input"],Number:["Number"],FormHtml:["FormHtml"],Object:["Object"],Photo:["Photo"],Radio:["Radio"],Rule:["Rule"],Scope:["Scope"],Select:["Select"],Switch:["Switch"],FormTag:["FormTag"],Textarea:["Textarea"],FormField:["FormField"],Formula:["Formula"],FormulaEditor:["FormulaEditor"],Gauge:["Gauge"],Grid:["Grid"],GridItem:["GridItem"],Header:["Header"],HeaderBreadcrumb:["HeaderBreadcrumb"],Html:["Html"],TabTags:["TabTags"],TabsBar:["TabsBar"],AppSettings:["AppSettings"],Icon:["Icon"],Iframe:["Iframe"],Image:["Image"],Import:["Import"],ImportFile:["ImportFile"],LayoutComponent:["LayoutComponent"],Link:["Link"],List:["List"],LoadPage:["LoadPage"],Login:["Login"],MEntityAddPage:["MEntityAddPage"],MEntityDeptFind:["MEntityDeptFind"],MEntityList:["MEntityList"],MEntityListFind:["MEntityListFind"],MEntityNoSubmitSubList:["MEntityNoSubmitSubList"],MEntityTreeFind:["MEntityTreeFind"],MEntityUserFind:["MEntityUserFind"],MEntitySubList:["MEntitySubList"],Menu:["Menu"],MenuItem:["MenuItem"],MenuIndex:["MenuIndex"],Mine:["Mine"],ModuleIndexPage:["ModuleIndexPage"],ModuleList:["ModuleList"],ModuleListPage:["ModuleListPage"],ModuleTabsPage:["ModuleTabsPage"],NavAddForm:["NavAddForm"],CardNum:["CardNum"],NumStatistic:["NumStatistic"],NumItem:["NumItem"],NumSubItem:["NumSubItem"],OrgChart:["OrgChart"],Page:["Page"],PageHelp:["PageHelp"],PageTabs:["PageTabs"],Pagination:["Pagination"],Progress:["Progress"],ProcessChart:["ProcessChart"],Report:["Report"],ReportHtml:["ReportHtml"],ReportPreview:["ReportPreview"],RouterView:["RouterView"],ScopeComponent:["ScopeComponent"],Search:["Search"],SearchBar:["SearchBar"],SearchList:["SearchList"],Step:["Step"],StepItem:["StepItem"],TabBar:["TabBar"],Tabs:["Tabs"],Tag:["Tag"],TaskList:["TaskList"],TaskListPage:["TaskListPage"],Template:["Template"],Text:["Text"],TextEditor:["TextEditor"],Title:["Title"],UpdateForm:["UpdateForm"],UpdateFormItem:["UpdateFormItem"],UpdateSubList:["UpdateSubList"],Video:["Video"],ConfigPage:["ConfigPage"],default:["default"]}},"@epxing/business":{package:"@epxing/business",exports:{UserFind:["UserFind"],DeptFind:["DeptFind"],HeaderNav:["HeaderNav"],EntityTreeManage:["EntityTreeManage"],PageCatalog:["PageCatalog"],ReportFormList:["ReportFormList"],ReportFormListPage:["ReportFormListPage"],ExcelPreviewPage:["ExcelPreviewPage"]}},"@epxing/designer":{package:"@epxing/designer",exports:{ProcessFormItemVisual:["ProcessFormItemVisual"],VisualComponent:["VisualComponent"],VisualConfigPage:["VisualConfigPage"],VisualEntityList:["VisualEntityList"],VisualEntitySubList:["VisualEntitySubList"],VisualConfigField:["VisualConfigField"],VisualConfigListField:["VisualConfigListField"],VisualConfigOrderField:["VisualConfigOrderField"],PageDesigner:["PageDesigner"],CardFormItemVisual:["CardFormItemVisual"],CarouselVisual:["CarouselVisual"],CollapseVisual:["CollapseVisual"],DropdownVisual:["DropdownVisual"],LayoutConfig:["LayoutConfig"],ListVisual:["ListVisual"],MEntityListFindVisual:["MEntityListFindVisual"],TabsConfig:["TabsConfig"],widgetPreviews:["widgetPreviews"]}},"@epxing/business/user-find":{package:"@epxing/business",exports:{default:["UserFind"]}},"@epxing/business/dept-find":{package:"@epxing/business",exports:{default:["DeptFind"]}},"@epxing/business/header-nav":{package:"@epxing/business",exports:{default:["HeaderNav"]}},"@epxing/business/entity-tree-manage":{package:"@epxing/business",exports:{default:["EntityTreeManage"]}},"@epxing/business/page-catalog":{package:"@epxing/business",exports:{default:["PageCatalog"]}},"@epxing/business/report-form-list":{package:"@epxing/business",exports:{default:["ReportFormList"]}},"@epxing/business/report-form-list-page":{package:"@epxing/business",exports:{default:["ReportFormListPage"]}},"@epxing/business/excel-preview-page":{package:"@epxing/business",exports:{default:["ExcelPreviewPage"]}},"@epxing/designer/visual-component":{package:"@epxing/designer",exports:{default:["VisualComponent"]}},"@epxing/designer/visual-entity-list":{package:"@epxing/designer",exports:{default:["VisualEntityList"]}},"@epxing/designer/visual-entity-sub-list":{package:"@epxing/designer",exports:{default:["VisualEntitySubList"]}},"@epxing/designer/page-designer":{package:"@epxing/designer",exports:{default:["PageDesigner"]}},vue:{package:"vue",exports:{BaseTransition:["BaseTransition"],BaseTransitionPropsValidators:["BaseTransitionPropsValidators"],Comment:["Comment"],DeprecationTypes:["DeprecationTypes"],EffectScope:["EffectScope"],ErrorCodes:["ErrorCodes"],ErrorTypeStrings:["ErrorTypeStrings"],Fragment:["Fragment"],KeepAlive:["KeepAlive"],ReactiveEffect:["ReactiveEffect"],Static:["Static"],Suspense:["Suspense"],Teleport:["Teleport"],Text:["Text"],TrackOpTypes:["TrackOpTypes"],Transition:["Transition"],TransitionGroup:["TransitionGroup"],TriggerOpTypes:["TriggerOpTypes"],VueElement:["VueElement"],__esModule:["__esModule"],assertNumber:["assertNumber"],callWithAsyncErrorHandling:["callWithAsyncErrorHandling"],callWithErrorHandling:["callWithErrorHandling"],camelize:["camelize"],capitalize:["capitalize"],cloneVNode:["cloneVNode"],compatUtils:["compatUtils"],compile:["compile"],computed:["computed"],createApp:["createApp"],createBlock:["createBlock"],createCommentVNode:["createCommentVNode"],createElementBlock:["createElementBlock"],createElementVNode:["createElementVNode"],createHydrationRenderer:["createHydrationRenderer"],createPropsRestProxy:["createPropsRestProxy"],createRenderer:["createRenderer"],createSSRApp:["createSSRApp"],createSlots:["createSlots"],createStaticVNode:["createStaticVNode"],createTextVNode:["createTextVNode"],createVNode:["createVNode"],customRef:["customRef"],defineAsyncComponent:["defineAsyncComponent"],defineComponent:["defineComponent"],defineCustomElement:["defineCustomElement"],defineEmits:["defineEmits"],defineExpose:["defineExpose"],defineModel:["defineModel"],defineOptions:["defineOptions"],defineProps:["defineProps"],defineSSRCustomElement:["defineSSRCustomElement"],defineSlots:["defineSlots"],devtools:["devtools"],effect:["effect"],effectScope:["effectScope"],getCurrentInstance:["getCurrentInstance"],getCurrentScope:["getCurrentScope"],getCurrentWatcher:["getCurrentWatcher"],getTransitionRawChildren:["getTransitionRawChildren"],guardReactiveProps:["guardReactiveProps"],h:["h"],handleError:["handleError"],hasInjectionContext:["hasInjectionContext"],hydrate:["hydrate"],hydrateOnIdle:["hydrateOnIdle"],hydrateOnInteraction:["hydrateOnInteraction"],hydrateOnMediaQuery:["hydrateOnMediaQuery"],hydrateOnVisible:["hydrateOnVisible"],initCustomFormatter:["initCustomFormatter"],initDirectivesForSSR:["initDirectivesForSSR"],inject:["inject"],isMemoSame:["isMemoSame"],isProxy:["isProxy"],isReactive:["isReactive"],isReadonly:["isReadonly"],isRef:["isRef"],isRuntimeOnly:["isRuntimeOnly"],isShallow:["isShallow"],isVNode:["isVNode"],markRaw:["markRaw"],mergeDefaults:["mergeDefaults"],mergeModels:["mergeModels"],mergeProps:["mergeProps"],nextTick:["nextTick"],nodeOps:["nodeOps"],normalizeClass:["normalizeClass"],normalizeProps:["normalizeProps"],normalizeStyle:["normalizeStyle"],onActivated:["onActivated"],onBeforeMount:["onBeforeMount"],onBeforeUnmount:["onBeforeUnmount"],onBeforeUpdate:["onBeforeUpdate"],onDeactivated:["onDeactivated"],onErrorCaptured:["onErrorCaptured"],onMounted:["onMounted"],onRenderTracked:["onRenderTracked"],onRenderTriggered:["onRenderTriggered"],onScopeDispose:["onScopeDispose"],onServerPrefetch:["onServerPrefetch"],onUnmounted:["onUnmounted"],onUpdated:["onUpdated"],onWatcherCleanup:["onWatcherCleanup"],openBlock:["openBlock"],patchProp:["patchProp"],popScopeId:["popScopeId"],provide:["provide"],proxyRefs:["proxyRefs"],pushScopeId:["pushScopeId"],queuePostFlushCb:["queuePostFlushCb"],reactive:["reactive"],readonly:["readonly"],ref:["ref"],registerRuntimeCompiler:["registerRuntimeCompiler"],render:["render"],renderList:["renderList"],renderSlot:["renderSlot"],resolveComponent:["resolveComponent"],resolveDirective:["resolveDirective"],resolveDynamicComponent:["resolveDynamicComponent"],resolveFilter:["resolveFilter"],resolveTransitionHooks:["resolveTransitionHooks"],setBlockTracking:["setBlockTracking"],setDevtoolsHook:["setDevtoolsHook"],setTransitionHooks:["setTransitionHooks"],shallowReactive:["shallowReactive"],shallowReadonly:["shallowReadonly"],shallowRef:["shallowRef"],ssrContextKey:["ssrContextKey"],ssrUtils:["ssrUtils"],stop:["stop"],toDisplayString:["toDisplayString"],toHandlerKey:["toHandlerKey"],toHandlers:["toHandlers"],toRaw:["toRaw"],toRef:["toRef"],toRefs:["toRefs"],toValue:["toValue"],transformVNodeArgs:["transformVNodeArgs"],triggerRef:["triggerRef"],unref:["unref"],useAttrs:["useAttrs"],useCssModule:["useCssModule"],useCssVars:["useCssVars"],useHost:["useHost"],useId:["useId"],useModel:["useModel"],useSSRContext:["useSSRContext"],useShadowRoot:["useShadowRoot"],useSlots:["useSlots"],useTemplateRef:["useTemplateRef"],useTransitionState:["useTransitionState"],vModelCheckbox:["vModelCheckbox"],vModelDynamic:["vModelDynamic"],vModelRadio:["vModelRadio"],vModelSelect:["vModelSelect"],vModelText:["vModelText"],vShow:["vShow"],version:["version"],warn:["warn"],watch:["watch"],watchEffect:["watchEffect"],watchPostEffect:["watchPostEffect"],watchSyncEffect:["watchSyncEffect"],withAsyncContext:["withAsyncContext"],withCtx:["withCtx"],withDefaults:["withDefaults"],withDirectives:["withDirectives"],withKeys:["withKeys"],withMemo:["withMemo"],withModifiers:["withModifiers"],withScopeId:["withScopeId"]}},vuex:{package:"vuex",exports:{Store:["Store"],createLogger:["createLogger"],createNamespacedHelpers:["createNamespacedHelpers"],createStore:["createStore"],default:["default"],install:["install"],mapActions:["mapActions"],mapGetters:["mapGetters"],mapMutations:["mapMutations"],mapState:["mapState"],storeKey:["storeKey"],useStore:["useStore"],version:["version"]}},"@epxing/component/add-form":{package:"@epxing/component",exports:{default:["AddForm"]}},"@epxing/components/add-form":{package:"@epxing/component",exports:{default:["AddForm"]}},"@epxing/component/add-form-item":{package:"@epxing/component",exports:{default:["AddFormItem"]}},"@epxing/components/add-form-item":{package:"@epxing/component",exports:{default:["AddFormItem"]}},"@epxing/component/ai-import-page":{package:"@epxing/component",exports:{default:["AiImportPage"]}},"@epxing/components/ai-import-page":{package:"@epxing/component",exports:{default:["AiImportPage"]}},"@epxing/component/ai-import":{package:"@epxing/component",exports:{default:["AiImport"]}},"@epxing/components/ai-import":{package:"@epxing/component",exports:{default:["AiImport"]}},"@epxing/component/ai-agent-page":{package:"@epxing/component",exports:{default:["AiAgentPage"]}},"@epxing/components/ai-agent-page":{package:"@epxing/component",exports:{default:["AiAgentPage"]}},"@epxing/component/ai-chat-page":{package:"@epxing/component",exports:{default:["AiChatPage"]}},"@epxing/components/ai-chat-page":{package:"@epxing/component",exports:{default:["AiChatPage"]}},"@epxing/component/wiki-site":{package:"@epxing/component",exports:{default:["WikiSite"]}},"@epxing/components/wiki-site":{package:"@epxing/component",exports:{default:["WikiSite"]}},"@epxing/component/ai-metadata-assistant":{package:"@epxing/component",exports:{default:["AiMetadataAssistant"]}},"@epxing/components/ai-metadata-assistant":{package:"@epxing/component",exports:{default:["AiMetadataAssistant"]}},"@epxing/component/alert":{package:"@epxing/component",exports:{default:["Alert"]}},"@epxing/components/alert":{package:"@epxing/component",exports:{default:["Alert"]}},"@epxing/component/app-index":{package:"@epxing/component",exports:{default:["AppIndex"]}},"@epxing/components/app-index":{package:"@epxing/component",exports:{default:["AppIndex"]}},"@epxing/component/app-nav":{package:"@epxing/component",exports:{default:["AppNav"]}},"@epxing/components/app-nav":{package:"@epxing/component",exports:{default:["AppNav"]}},"@epxing/component/app-tabs":{package:"@epxing/component",exports:{default:["AppTabs"]}},"@epxing/components/app-tabs":{package:"@epxing/component",exports:{default:["AppTabs"]}},"@epxing/component/apply-form":{package:"@epxing/component",exports:{default:["ApplyForm"]}},"@epxing/components/apply-form":{package:"@epxing/component",exports:{default:["ApplyForm"]}},"@epxing/component/approval-index":{package:"@epxing/component",exports:{default:["ApprovalIndex"]}},"@epxing/components/approval-index":{package:"@epxing/component",exports:{default:["ApprovalIndex"]}},"@epxing/component/approval-index-page":{package:"@epxing/component",exports:{default:["ApprovalIndexPage"]}},"@epxing/components/approval-index-page":{package:"@epxing/component",exports:{default:["ApprovalIndexPage"]}},"@epxing/component/base-page":{package:"@epxing/component",exports:{default:["BasePage"]}},"@epxing/components/base-page":{package:"@epxing/component",exports:{default:["BasePage"]}},"@epxing/component/button":{package:"@epxing/component",exports:{default:["Button"]}},"@epxing/components/button":{package:"@epxing/component",exports:{default:["Button"]}},"@epxing/component/card":{package:"@epxing/component",exports:{default:["Card"]}},"@epxing/components/card":{package:"@epxing/component",exports:{default:["Card"]}},"@epxing/component/card-form-item":{package:"@epxing/component",exports:{default:["CardFormItem"]}},"@epxing/components/card-form-item":{package:"@epxing/component",exports:{default:["CardFormItem"]}},"@epxing/component/act-process-form-item":{package:"@epxing/component",exports:{default:["ActProcessFormItem"]}},"@epxing/components/act-process-form-item":{package:"@epxing/component",exports:{default:["ActProcessFormItem"]}},"@epxing/component/carousel":{package:"@epxing/component",exports:{default:["Carousel"]}},"@epxing/components/carousel":{package:"@epxing/component",exports:{default:["Carousel"]}},"@epxing/component/category-list":{package:"@epxing/component",exports:{default:["CategoryList"]}},"@epxing/components/category-list":{package:"@epxing/component",exports:{default:["CategoryList"]}},"@epxing/component/report-chart":{package:"@epxing/component",exports:{default:["ReportChart"]}},"@epxing/components/report-chart":{package:"@epxing/component",exports:{default:["ReportChart"]}},"@epxing/component/chart":{package:"@epxing/component",exports:{default:["Chart"]}},"@epxing/components/chart":{package:"@epxing/component",exports:{default:["Chart"]}},"@epxing/component/check-history":{package:"@epxing/component",exports:{default:["CheckHistory"]}},"@epxing/components/check-history":{package:"@epxing/component",exports:{default:["CheckHistory"]}},"@epxing/component/collapse":{package:"@epxing/component",exports:{default:["Collapse"]}},"@epxing/components/collapse":{package:"@epxing/component",exports:{default:["Collapse"]}},"@epxing/component/color-picker":{package:"@epxing/component",exports:{default:["ColorPicker"]}},"@epxing/components/color-picker":{package:"@epxing/component",exports:{default:["ColorPicker"]}},"@epxing/component/component":{package:"@epxing/component",exports:{default:["Component"]}},"@epxing/components/component":{package:"@epxing/component",exports:{default:["Component"]}},"@epxing/component/contacts":{package:"@epxing/component",exports:{default:["Contacts"]}},"@epxing/components/contacts":{package:"@epxing/component",exports:{default:["Contacts"]}},"@epxing/component/div":{package:"@epxing/component",exports:{default:["Div"]}},"@epxing/components/div":{package:"@epxing/component",exports:{default:["Div"]}},"@epxing/component/dropdown":{package:"@epxing/component",exports:{default:["Dropdown"]}},"@epxing/components/dropdown":{package:"@epxing/component",exports:{default:["Dropdown"]}},"@epxing/component/edit-entity-list":{package:"@epxing/component",exports:{default:["EditEntityList"]}},"@epxing/components/edit-entity-list":{package:"@epxing/component",exports:{default:["EditEntityList"]}},"@epxing/component/empty":{package:"@epxing/component",exports:{default:["Empty"]}},"@epxing/components/empty":{package:"@epxing/component",exports:{default:["Empty"]}},"@epxing/component/entity-add-page":{package:"@epxing/component",exports:{default:["EntityAddPage"]}},"@epxing/components/entity-add-page":{package:"@epxing/component",exports:{default:["EntityAddPage"]}},"@epxing/component/entity-apply-page":{package:"@epxing/component",exports:{default:["EntityApplyPage"]}},"@epxing/components/entity-apply-page":{package:"@epxing/component",exports:{default:["EntityApplyPage"]}},"@epxing/component/entity-card-list":{package:"@epxing/component",exports:{default:["EntityCardList"]}},"@epxing/components/entity-card-list":{package:"@epxing/component",exports:{default:["EntityCardList"]}},"@epxing/component/entity-list":{package:"@epxing/component",exports:{default:["EntityList"],Mobile:["EntityList","Mobile"]}},"@epxing/components/entity-list":{package:"@epxing/component",exports:{default:["EntityList"],Mobile:["EntityList","Mobile"]}},"@epxing/component/entity-list-find":{package:"@epxing/component",exports:{default:["EntityListFind"]}},"@epxing/components/entity-list-find":{package:"@epxing/component",exports:{default:["EntityListFind"]}},"@epxing/component/entity-list-find-page":{package:"@epxing/component",exports:{default:["EntityListFindPage"]}},"@epxing/components/entity-list-find-page":{package:"@epxing/component",exports:{default:["EntityListFindPage"]}},"@epxing/component/entity-list-page":{package:"@epxing/component",exports:{default:["EntityListPage"]}},"@epxing/components/entity-list-page":{package:"@epxing/component",exports:{default:["EntityListPage"]}},"@epxing/component/entity-no-submit-sub-list":{package:"@epxing/component",exports:{default:["EntityNoSubmitSubList"]}},"@epxing/components/entity-no-submit-sub-list":{package:"@epxing/component",exports:{default:["EntityNoSubmitSubList"]}},"@epxing/component/entity-sub-grid":{package:"@epxing/component",exports:{default:["EntitySubGrid"],EntitySubGridItem:["EntitySubGridItem"]}},"@epxing/components/entity-sub-grid":{package:"@epxing/component",exports:{default:["EntitySubGrid"],EntitySubGridItem:["EntitySubGridItem"]}},"@epxing/component/entity-sub-list":{package:"@epxing/component",exports:{default:["EntitySubList"]}},"@epxing/components/entity-sub-list":{package:"@epxing/component",exports:{default:["EntitySubList"]}},"@epxing/component/entity-tree-find":{package:"@epxing/component",exports:{default:["EntityTreeFind"]}},"@epxing/components/entity-tree-find":{package:"@epxing/component",exports:{default:["EntityTreeFind"]}},"@epxing/component/entity-tree-find-page":{package:"@epxing/component",exports:{default:["EntityTreeFindPage"]}},"@epxing/components/entity-tree-find-page":{package:"@epxing/component",exports:{default:["EntityTreeFindPage"]}},"@epxing/component/entity-virtual-list":{package:"@epxing/component",exports:{default:["EntityVirtualList"]}},"@epxing/components/entity-virtual-list":{package:"@epxing/component",exports:{default:["EntityVirtualList"]}},"@epxing/component/export":{package:"@epxing/component",exports:{default:["Export"]}},"@epxing/components/export":{package:"@epxing/component",exports:{default:["Export"]}},"@epxing/component/export-file":{package:"@epxing/component",exports:{default:["ExportFile"]}},"@epxing/components/export-file":{package:"@epxing/component",exports:{default:["ExportFile"]}},"@epxing/component/flow-num":{package:"@epxing/component",exports:{default:["FlowNumStatistic"]}},"@epxing/components/flow-num":{package:"@epxing/component",exports:{default:["FlowNumStatistic"]}},"@epxing/component/footer":{package:"@epxing/component",exports:{default:["Footer"]}},"@epxing/components/footer":{package:"@epxing/component",exports:{default:["Footer"]}},"@epxing/component/form":{package:"@epxing/component",exports:{default:["Form"]}},"@epxing/components/form":{package:"@epxing/component",exports:{default:["Form"]}},"@epxing/component/form-item":{package:"@epxing/component",exports:{default:["FormItem"],CheckBox:["CheckBox"],Color:["Color"],Date:["Date"],File:["File"],Input:["Input"],Number:["Number"],Html:["FormHtml"],Object:["Object"],Photo:["Photo"],Radio:["Radio"],Rule:["Rule"],Scope:["Scope"],Select:["Select"],Switch:["Switch"],Tag:["FormTag"],Textarea:["Textarea"]}},"@epxing/components/form-item":{package:"@epxing/component",exports:{default:["FormItem"],CheckBox:["CheckBox"],Color:["Color"],Date:["Date"],File:["File"],Input:["Input"],Number:["Number"],Html:["FormHtml"],Object:["Object"],Photo:["Photo"],Radio:["Radio"],Rule:["Rule"],Scope:["Scope"],Select:["Select"],Switch:["Switch"],Tag:["FormTag"],Textarea:["Textarea"]}},"@epxing/component/form-field":{package:"@epxing/component",exports:{default:["FormField"]}},"@epxing/components/form-field":{package:"@epxing/component",exports:{default:["FormField"]}},"@epxing/component/formula":{package:"@epxing/component",exports:{default:["Formula"]}},"@epxing/components/formula":{package:"@epxing/component",exports:{default:["Formula"]}},"@epxing/component/formula-editor":{package:"@epxing/component",exports:{default:["FormulaEditor"]}},"@epxing/components/formula-editor":{package:"@epxing/component",exports:{default:["FormulaEditor"]}},"@epxing/component/gauge":{package:"@epxing/component",exports:{default:["Gauge"]}},"@epxing/components/gauge":{package:"@epxing/component",exports:{default:["Gauge"]}},"@epxing/component/grid":{package:"@epxing/component",exports:{default:["Grid"],GridItem:["GridItem"]}},"@epxing/components/grid":{package:"@epxing/component",exports:{default:["Grid"],GridItem:["GridItem"]}},"@epxing/component/header":{package:"@epxing/component",exports:{default:["Header"],Breadcrumb:["HeaderBreadcrumb"]}},"@epxing/components/header":{package:"@epxing/component",exports:{default:["Header"],Breadcrumb:["HeaderBreadcrumb"]}},"@epxing/component/html":{package:"@epxing/component",exports:{default:["Html"]}},"@epxing/components/html":{package:"@epxing/component",exports:{default:["Html"]}},"@epxing/component/tab-tags":{package:"@epxing/component",exports:{default:["TabTags"]}},"@epxing/components/tab-tags":{package:"@epxing/component",exports:{default:["TabTags"]}},"@epxing/component/tabs-bar":{package:"@epxing/component",exports:{default:["TabsBar"]}},"@epxing/components/tabs-bar":{package:"@epxing/component",exports:{default:["TabsBar"]}},"@epxing/component/app-settings":{package:"@epxing/component",exports:{default:["AppSettings"]}},"@epxing/components/app-settings":{package:"@epxing/component",exports:{default:["AppSettings"]}},"@epxing/component/icon":{package:"@epxing/component",exports:{default:["Icon"]}},"@epxing/components/icon":{package:"@epxing/component",exports:{default:["Icon"]}},"@epxing/component/iframe":{package:"@epxing/component",exports:{default:["Iframe"]}},"@epxing/components/iframe":{package:"@epxing/component",exports:{default:["Iframe"]}},"@epxing/component/image":{package:"@epxing/component",exports:{default:["Image"]}},"@epxing/components/image":{package:"@epxing/component",exports:{default:["Image"]}},"@epxing/component/import":{package:"@epxing/component",exports:{default:["Import"]}},"@epxing/components/import":{package:"@epxing/component",exports:{default:["Import"]}},"@epxing/component/import-file":{package:"@epxing/component",exports:{default:["ImportFile"]}},"@epxing/components/import-file":{package:"@epxing/component",exports:{default:["ImportFile"]}},"@epxing/component/layout":{package:"@epxing/component",exports:{default:["LayoutComponent"]}},"@epxing/components/layout":{package:"@epxing/component",exports:{default:["LayoutComponent"]}},"@epxing/component/link":{package:"@epxing/component",exports:{default:["Link"]}},"@epxing/components/link":{package:"@epxing/component",exports:{default:["Link"]}},"@epxing/component/list":{package:"@epxing/component",exports:{default:["List"]}},"@epxing/components/list":{package:"@epxing/component",exports:{default:["List"]}},"@epxing/component/load-page":{package:"@epxing/component",exports:{default:["LoadPage"]}},"@epxing/components/load-page":{package:"@epxing/component",exports:{default:["LoadPage"]}},"@epxing/component/login":{package:"@epxing/component",exports:{default:["Login"]}},"@epxing/components/login":{package:"@epxing/component",exports:{default:["Login"]}},"@epxing/component/m-entity-add-page":{package:"@epxing/component",exports:{default:["MEntityAddPage"]}},"@epxing/components/m-entity-add-page":{package:"@epxing/component",exports:{default:["MEntityAddPage"]}},"@epxing/component/m-entity-dept-find":{package:"@epxing/component",exports:{default:["MEntityDeptFind"]}},"@epxing/components/m-entity-dept-find":{package:"@epxing/component",exports:{default:["MEntityDeptFind"]}},"@epxing/component/m-entity-list":{package:"@epxing/component",exports:{default:["MEntityList"]}},"@epxing/components/m-entity-list":{package:"@epxing/component",exports:{default:["MEntityList"]}},"@epxing/component/m-entity-list-find":{package:"@epxing/component",exports:{default:["MEntityListFind"]}},"@epxing/components/m-entity-list-find":{package:"@epxing/component",exports:{default:["MEntityListFind"]}},"@epxing/component/m-entity-no-submit-sub-list":{package:"@epxing/component",exports:{default:["MEntityNoSubmitSubList"]}},"@epxing/components/m-entity-no-submit-sub-list":{package:"@epxing/component",exports:{default:["MEntityNoSubmitSubList"]}},"@epxing/component/m-entity-tree-find":{package:"@epxing/component",exports:{default:["MEntityTreeFind"]}},"@epxing/components/m-entity-tree-find":{package:"@epxing/component",exports:{default:["MEntityTreeFind"]}},"@epxing/component/m-entity-user-find":{package:"@epxing/component",exports:{default:["MEntityUserFind"]}},"@epxing/components/m-entity-user-find":{package:"@epxing/component",exports:{default:["MEntityUserFind"]}},"@epxing/component/m-entity-sub-list":{package:"@epxing/component",exports:{default:["MEntitySubList"]}},"@epxing/components/m-entity-sub-list":{package:"@epxing/component",exports:{default:["MEntitySubList"]}},"@epxing/component/menu":{package:"@epxing/component",exports:{default:["Menu"],MenuItem:["MenuItem"]}},"@epxing/components/menu":{package:"@epxing/component",exports:{default:["Menu"],MenuItem:["MenuItem"]}},"@epxing/component/menu-index":{package:"@epxing/component",exports:{default:["MenuIndex"]}},"@epxing/components/menu-index":{package:"@epxing/component",exports:{default:["MenuIndex"]}},"@epxing/component/mine":{package:"@epxing/component",exports:{default:["Mine"]}},"@epxing/components/mine":{package:"@epxing/component",exports:{default:["Mine"]}},"@epxing/component/module-index-page":{package:"@epxing/component",exports:{default:["ModuleIndexPage"]}},"@epxing/components/module-index-page":{package:"@epxing/component",exports:{default:["ModuleIndexPage"]}},"@epxing/component/module-list":{package:"@epxing/component",exports:{default:["ModuleList"]}},"@epxing/components/module-list":{package:"@epxing/component",exports:{default:["ModuleList"]}},"@epxing/component/module-list-page":{package:"@epxing/component",exports:{default:["ModuleListPage"]}},"@epxing/components/module-list-page":{package:"@epxing/component",exports:{default:["ModuleListPage"]}},"@epxing/component/module-tabs-page":{package:"@epxing/component",exports:{default:["ModuleTabsPage"]}},"@epxing/components/module-tabs-page":{package:"@epxing/component",exports:{default:["ModuleTabsPage"]}},"@epxing/component/nav-add-form":{package:"@epxing/component",exports:{default:["NavAddForm"]}},"@epxing/components/nav-add-form":{package:"@epxing/component",exports:{default:["NavAddForm"]}},"@epxing/component/num":{package:"@epxing/component",exports:{default:["CardNum"],Statistic:["NumStatistic"],NumItem:["NumItem"],NumSubItem:["NumSubItem"]}},"@epxing/components/num":{package:"@epxing/component",exports:{default:["CardNum"],Statistic:["NumStatistic"],NumItem:["NumItem"],NumSubItem:["NumSubItem"]}},"@epxing/component/org-chart":{package:"@epxing/component",exports:{default:["OrgChart"]}},"@epxing/components/org-chart":{package:"@epxing/component",exports:{default:["OrgChart"]}},"@epxing/component/page":{package:"@epxing/component",exports:{default:["Page"]}},"@epxing/components/page":{package:"@epxing/component",exports:{default:["Page"]}},"@epxing/component/page-help":{package:"@epxing/component",exports:{default:["PageHelp"]}},"@epxing/components/page-help":{package:"@epxing/component",exports:{default:["PageHelp"]}},"@epxing/component/page-tabs":{package:"@epxing/component",exports:{default:["PageTabs"]}},"@epxing/components/page-tabs":{package:"@epxing/component",exports:{default:["PageTabs"]}},"@epxing/component/pagination":{package:"@epxing/component",exports:{default:["Pagination"]}},"@epxing/components/pagination":{package:"@epxing/component",exports:{default:["Pagination"]}},"@epxing/component/progress":{package:"@epxing/component",exports:{default:["Progress"]}},"@epxing/components/progress":{package:"@epxing/component",exports:{default:["Progress"]}},"@epxing/component/progress-chart":{package:"@epxing/component",exports:{default:["ProcessChart"]}},"@epxing/components/progress-chart":{package:"@epxing/component",exports:{default:["ProcessChart"]}},"@epxing/component/report":{package:"@epxing/component",exports:{default:["Report"]}},"@epxing/components/report":{package:"@epxing/component",exports:{default:["Report"]}},"@epxing/component/report-html":{package:"@epxing/component",exports:{default:["ReportHtml"]}},"@epxing/components/report-html":{package:"@epxing/component",exports:{default:["ReportHtml"]}},"@epxing/component/report-preview":{package:"@epxing/component",exports:{default:["ReportPreview"]}},"@epxing/components/report-preview":{package:"@epxing/component",exports:{default:["ReportPreview"]}},"@epxing/component/router-view":{package:"@epxing/component",exports:{default:["RouterView"]}},"@epxing/components/router-view":{package:"@epxing/component",exports:{default:["RouterView"]}},"@epxing/component/scope":{package:"@epxing/component",exports:{default:["ScopeComponent"]}},"@epxing/components/scope":{package:"@epxing/component",exports:{default:["ScopeComponent"]}},"@epxing/component/search":{package:"@epxing/component",exports:{default:["Search"]}},"@epxing/components/search":{package:"@epxing/component",exports:{default:["Search"]}},"@epxing/component/search-bar":{package:"@epxing/component",exports:{default:["SearchBar"]}},"@epxing/components/search-bar":{package:"@epxing/component",exports:{default:["SearchBar"]}},"@epxing/component/search-list":{package:"@epxing/component",exports:{default:["SearchList"]}},"@epxing/components/search-list":{package:"@epxing/component",exports:{default:["SearchList"]}},"@epxing/component/step":{package:"@epxing/component",exports:{default:["Step"]}},"@epxing/components/step":{package:"@epxing/component",exports:{default:["Step"]}},"@epxing/component/step-item":{package:"@epxing/component",exports:{default:["StepItem"]}},"@epxing/components/step-item":{package:"@epxing/component",exports:{default:["StepItem"]}},"@epxing/component/tab-bar":{package:"@epxing/component",exports:{default:["TabBar"]}},"@epxing/components/tab-bar":{package:"@epxing/component",exports:{default:["TabBar"]}},"@epxing/component/tabs":{package:"@epxing/component",exports:{default:["Tabs"]}},"@epxing/components/tabs":{package:"@epxing/component",exports:{default:["Tabs"]}},"@epxing/component/tag":{package:"@epxing/component",exports:{default:["Tag"]}},"@epxing/components/tag":{package:"@epxing/component",exports:{default:["Tag"]}},"@epxing/component/task-list":{package:"@epxing/component",exports:{default:["TaskList"]}},"@epxing/components/task-list":{package:"@epxing/component",exports:{default:["TaskList"]}},"@epxing/component/task-list-page":{package:"@epxing/component",exports:{default:["TaskListPage"]}},"@epxing/components/task-list-page":{package:"@epxing/component",exports:{default:["TaskListPage"]}},"@epxing/component/template":{package:"@epxing/component",exports:{default:["Template"]}},"@epxing/components/template":{package:"@epxing/component",exports:{default:["Template"]}},"@epxing/component/text":{package:"@epxing/component",exports:{default:["Text"]}},"@epxing/components/text":{package:"@epxing/component",exports:{default:["Text"]}},"@epxing/component/text-editor":{package:"@epxing/component",exports:{default:["TextEditor"]}},"@epxing/components/text-editor":{package:"@epxing/component",exports:{default:["TextEditor"]}},"@epxing/component/title":{package:"@epxing/component",exports:{default:["Title"]}},"@epxing/components/title":{package:"@epxing/component",exports:{default:["Title"]}},"@epxing/component/update-form":{package:"@epxing/component",exports:{default:["UpdateForm"]}},"@epxing/components/update-form":{package:"@epxing/component",exports:{default:["UpdateForm"]}},"@epxing/component/update-form-item":{package:"@epxing/component",exports:{default:["UpdateFormItem"]}},"@epxing/components/update-form-item":{package:"@epxing/component",exports:{default:["UpdateFormItem"]}},"@epxing/component/update-sub-list":{package:"@epxing/component",exports:{default:["UpdateSubList"]}},"@epxing/components/update-sub-list":{package:"@epxing/component",exports:{default:["UpdateSubList"]}},"@epxing/component/video":{package:"@epxing/component",exports:{default:["Video"]}},"@epxing/components/video":{package:"@epxing/component",exports:{default:["Video"]}},"@epxing/component/config-page":{package:"@epxing/component",exports:{default:["ConfigPage"]}},"@epxing/components/config-page":{package:"@epxing/component",exports:{default:["ConfigPage"]}},"@epxing/core/app":{package:"@epxing/core",exports:{setApp:["setApp"],getApp:["getApp"],resolveComponent:["resolveComponent"],registerComponent:["registerComponent"]}},"@epxing/core/http":{package:"@epxing/core",exports:{default:["http"]}},"@epxing/core/axios":{package:"@epxing/core",exports:{default:["axios"]}},"@epxing/core/navigation":{package:"@epxing/core",exports:{nav:["nav"],default:["nav"]}},"@epxing/core/component-mixin":{package:"@epxing/core",exports:{default:["ComponentMixin"]}},"@epxing/core/global-mixin":{package:"@epxing/core",exports:{default:["GlobalMixin"]}},"@epxing/core/field-factory":{package:"@epxing/core",exports:{FieldFactory:["FieldFactoryClass"],createFieldFactory:["createFieldFactory"],default:["FieldFactory"]}},"@epxing/core/meta":{package:"@epxing/core",exports:{default:["Meta"]}},"@epxing/core/pdf-viewer":{package:"@epxing/core",exports:{default:["PdfViewer"]}},"@epxing/core/util":{package:"@epxing/core",exports:{getSystemMeta:["getSystemMeta"],getFileUrl:["getFileUrl"],getSysId:["getSysId"],toLogin:["toLogin"],usePlugin:["usePlugin"],runExpByScope:["runExpByScope"],default:["util"]}},"@epxing/core/store":{package:"@epxing/core",exports:{createStoreModules:["createStoreModules"],storeModules:["storeModules"],createFrameStore:["createFrameStore"]}},"@epxing/core/runtime":{package:"@epxing/core",exports:{configureRuntime:["configureRuntime"],registerRouteComponents:["registerRouteComponents"]}},"@epxing/core/mixins":{package:"@epxing/core",exports:{default:["mixins"],component:["ComponentMixin"],global:["GlobalMixin"]}},"@epxing/core/router":{package:"@epxing/core",exports:{routerConfig:["routerConfig"],createFrameRouter:["createFrameRouter"],default:["routerConfig"]}},"@epxing/core/event-bus":{package:"@epxing/core",exports:{createEventBus:["createEventBus"],getEventBus:["getEventBus"]}},"@epxing/utils/config":{package:"@epxing/utils",exports:{default:["Config"]}},"@epxing/utils/page":{package:"@epxing/utils",exports:{default:["Page"]}},"@epxing/utils/placeholder":{package:"@epxing/utils",exports:{PLACEHOLDER_RE:["PLACEHOLDER_RE"],lookup:["lookup"],resolveKey:["resolveKey"],resolvePlaceholders:["resolvePlaceholders"],default:["placeholder"]}},"@epxing/utils/storage":{package:"@epxing/utils",exports:{getXsrfToken:["getXsrfToken"],setXsrfToken:["setXsrfToken"],default:["storage"]}},"@epxing/utils/date":{package:"@epxing/utils",exports:{isDate:["isDate"],getDayCountOfMonth:["getDayCountOfMonth"],getDayCountOfYear:["getDayCountOfYear"],nextDate:["nextDate"],nextMonth:["nextMonth"],prevYear:["prevYear"],nextYear:["nextYear"],range:["range"],modifyDate:["modifyDate"],modifyTime:["modifyTime"],modifyWithTimeString:["modifyWithTimeString"]}},"@epxing/utils/dom":{package:"@epxing/utils",exports:{hasClass:["hasClass"],arrayFindIndex:["arrayFindIndex"],coerceTruthyValueToArray:["coerceTruthyValueToArray"]}},"@epxing/utils/date-time":{package:"@epxing/utils",exports:{createMoment:["createMoment"],default:["moment"]}},"@epxing/utils/collection":{package:"@epxing/utils",exports:{cloneDeep:["cloneDeep"],isNil:["isNil"],isEmpty:["isEmpty"],isObject:["isObject"],isEqual:["isEqual"],assignWith:["assignWith"],debounce:["debounce"],throttle:["throttle"],get:["get"],set:["set"],default:["lodash"]}}};var tt={utils:{config:"Config",page:"page",placeholder:"placeholder",storage:"storage",date:"date-helper",dom:"dom-helper","date-time":"moment-compat",collection:"collection"},core:{app:"app",http:"api/index",axios:"axios",navigation:"navigation","component-mixin":"mixins/component","global-mixin":"mixins/global","field-factory":"runtime-utils/fieldFactory",meta:"runtime-utils/meta","pdf-viewer":"runtime-utils/pdf.viewer",util:"runtime-utils/util",store:"store/create-store",runtime:"runtime-services",mixins:"mixins/index",router:"router/public","event-bus":"vue.bus"},business:{"user-find":"components/UserFind","dept-find":"components/DeptFind",popup:"popup","route-components":"route-components","entity-tree-manage":"components/EntityTreeManage","header-nav":"components/HeaderNav","page-catalog":"components/PageCatalog","report-form-list":"components/ReportFormList","report-form-list-page":"views/ReportFormListPage","excel-preview-page":"views/ExcelPreviewPage"},designer:{"page-designer":"page-designer/index","visual-component":"visual/Component","visual-entity-list":"visual/EntityList","visual-entity-sub-list":"visual/EntitySubList"},dashboard:{tabs:"Tabs",title:"Title",div:"Div",widget:"Widget"}};function le(e="5.3.0-beta.2"){let t=e.match(/^[~^]?(\d+)\.(\d+)\.(\d+)(?:-([\w.-]+))?$/);if(!t)return!1;let[,n,o,s,i]=t,p=Number(n)*1e6+Number(o)*1e3+Number(s);return p!==5003e3?p>5003e3:!i||/^beta\.(\d+)$/.test(i)&&Number(i.slice(5))>=2}l(le,"usesAutomaticStyles");var me=["@epxing/core/style.css","@epxing/component/style.css","@epxing/business/style.css"];function nt(e,t){let n={...e,"package.json":JSON.stringify({name:"__NAME__",version:"0.1.0",private:!0,runtime:"vue3",type:"module",scripts:{dev:"vite","build:lib":"vite build","build:lib:lazy":"cross-env LAZY_LIB=true vite build","build:app":"vite build --mode app",preview:"vite preview"},dependencies:{"@epxing/core":"__PACKAGES_VERSION__","@epxing/component":"__PACKAGES_VERSION__","@epxing/utils":"__PACKAGES_VERSION__","@epxing/business":"__PACKAGES_VERSION__","@epxing/theme":"__PACKAGES_VERSION__",vue:"3.5.39","vue-router":"4.6.4",vuex:"4.1.0","element-plus":"2.14.3"},devDependencies:{"@epxing/cli":"__CLI_VERSION__","@epxing/icons":"__PACKAGES_VERSION__",vite:"^6.0.0","@vitejs/plugin-vue":"^5.2.1","@vitejs/plugin-vue-jsx":"^4.1.1",sass:"^1.83.3","cross-env":"^7.0.3"}},null,2)+`
21
+ `,"vite.config.mjs":`import path from 'node:path'
22
+ import { fileURLToPath } from 'node:url'
23
+ import { createRequire } from 'node:module'
24
+ import { defineConfig, loadEnv } from 'vite'
25
+ import vue from '@vitejs/plugin-vue'
26
+ import vueJsx from '@vitejs/plugin-vue-jsx'
27
+ import { frameDeps, epxShared, lazyLib } from '@epxing/cli/vite'
28
+ import epxIcons from '@epxing/icons'
29
+ import pkg from './package.json' with { type: 'json' }
30
+
31
+ const root = path.dirname(fileURLToPath(import.meta.url))
32
+ const require = createRequire(import.meta.url)
33
+ const CONFIG_KEYS = ['IP', 'BASE_URL', 'BASE_PROJECT_NAME', 'BASE_AUTH_NAME', 'BASE_CLIENT_ID', 'BASE_SYSTEM_ID', 'BASE_APP_ID', 'ROUTER_MODE', 'MINIO_FILE_URL', 'WITH_CREDENTIALS']
34
+
35
+ export default defineConfig(({ command, mode }) => {
36
+ const env = loadEnv(mode, root, '')
37
+ const library = command === 'build' && mode !== 'app'
38
+ return {
39
+ resolve: { alias: { '@': path.resolve(root, 'src') }, dedupe: ['vue', 'vuex', 'vue-router'] },
40
+ server: { port: 8080 },
41
+ plugins: [
42
+ vue(), vueJsx(), epxIcons(),
43
+ ...(library ? [
44
+ frameDeps(), epxShared(),
45
+ lazyLib({ root, enabled: process.env.LAZY_LIB === 'true', glob: './__DIRNAME__/**/*.vue', pkgName: pkg.name })
46
+ ] : []),
47
+ {
48
+ name: 'product-runtime-config',
49
+ transformIndexHtml () {
50
+ const lines = CONFIG_KEYS.map(key => key === 'WITH_CREDENTIALS'
51
+ ? 'window.' + key + ' = ' + JSON.stringify(env[key] === 'true')
52
+ : 'window.' + key + ' = ' + JSON.stringify(env[key] || ''))
53
+ lines.push('window.MINIO_IP = window.IP || window.location.origin + "/"')
54
+ return [{ tag: 'script', children: lines.join('\\n'), injectTo: 'head-prepend' }]
55
+ }
56
+ }
57
+ ],
58
+ css: { preprocessorOptions: { scss: {
59
+ additionalData: '@import "' + require.resolve('@epxing/theme/src/theme/utils/mixins.scss').replace(/\\\\/g, '/') + '";',
60
+ quietDeps: true, silenceDeprecations: ['import', 'legacy-js-api', 'global-builtin']
61
+ } } },
62
+ build: library ? {
63
+ outDir: 'lib',
64
+ lib: { entry: path.resolve(root, 'src/index.js'), name: 'library.' + pkg.name, formats: ['umd'], fileName: () => 'index.js' },
65
+ rollupOptions: { output: { exports: 'default', assetFileNames: asset =>
66
+ (asset.names || [asset.name]).some(name => String(name).endsWith('.css')) ? 'index.css' : 'assets/[name]-[hash][extname]' } }
67
+ } : { outDir: 'dist' }
68
+ }
69
+ })
70
+ `,"src/main.js":`import { createApp } from '@epxing/core'
71
+ import Components from '@epxing/component'
72
+ import Business from '@epxing/business'
73
+ import '@epxing/theme'
74
+ import App from './App.vue'
75
+ import product from './index'
76
+
77
+ const app = createApp({ rootComponent: App })
78
+ app.use(Components)
79
+ app.use(Business)
80
+ app.use(product)
81
+ app.mount('#app')
82
+ `,"src/App.vue":`<script setup>
83
+ import { ref } from 'vue'
84
+ const count = ref(0)
85
+ </script>
86
+
87
+ <template>
88
+ <main class="product-start">
89
+ <h1>__NAME__</h1>
90
+ <p>\u4EA7\u54C1\u5DF2\u542F\u52A8\uFF0C\u53EF\u4EE5\u5F00\u59CB\u5F00\u53D1\u3002</p>
91
+ <button @click="count++">\u70B9\u51FB {{ count }} \u6B21</button>
92
+ </main>
93
+ </template>
94
+
95
+ <style scoped>
96
+ .product-start { padding: var(--epx-space-4, 24px); color: var(--epx-text); }
97
+ </style>
98
+ `,"src/__DIRNAME__/DemoList.vue":`<script>
99
+ import { EntityList } from '@epxing/component'
100
+ export default {
101
+ name: 'epx-__NAME__-demo-list',
102
+ extends: EntityList
103
+ // \u914D\u7F6E\u771F\u5B9E metaId\u3001listFields\u3001operates \u540E\uFF0C\u5728\u4EA7\u54C1\u9875\u9762\u4E2D\u4F7F\u7528\u3002
104
+ }
105
+ </script>
106
+ <style lang="scss" scoped>
107
+ .epx-__NAME__-demo-card {
108
+ @include epx-card;
109
+ font-size: var(--epx-font-size-base, 14px);
110
+ }
111
+ </style>
112
+ `,"README.md":`# __NAME__
113
+
114
+ \u57FA\u4E8E @epxing/* \u72EC\u7ACB\u5305\u7684 Vue 3 \u4EA7\u54C1\u3002\u8BE6\u7EC6\u8BF4\u660E\u89C1 [\u4EA7\u54C1\u4F7F\u7528\u6587\u6863](./PRODUCT-GUIDE.md)\u3002
115
+
116
+ \`\`\`sh
117
+ npm install --registry https://registry.npmjs.org/
118
+ npm run dev
119
+ npx epxing lib
120
+ npx epxing lib --full
121
+ npm run build:app
122
+ \`\`\`
123
+
124
+ \u672C\u5730\u9884\u89C8\u9ED8\u8BA4\u7AEF\u53E3 8080\uFF0C\u542F\u52A8\u9875\u4E0D\u4F9D\u8D56\u540E\u7AEF\u3002\u5B9E\u4F53\u5217\u8868\u3001\u8868\u5355\u3001\u4EBA\u5458\u9009\u62E9\u7B49\u529F\u80FD\u9700\u8981\u914D\u7F6E\u540E\u7AEF\u3001\u5143\u6570\u636E\u548C\u6743\u9650\u3002
125
+ `,"PRODUCT-GUIDE.md":Nt};if(!le(t)){let o=me.map(s=>`import '${s}'`).join(`
126
+ `);for(let s of["src/main.js","PRODUCT-GUIDE.md"])n[s]=n[s].replace("import '@epxing/theme'",`import '@epxing/theme'
127
+ `+o)}return n}l(nt,"createPackageTemplates");var Nt=`# \u4EA7\u54C1\u5F00\u53D1\u4E0E\u5347\u7EA7\u4F7F\u7528\u8BF4\u660E
128
+
129
+ <!-- epxing-generated-product-guide -->
130
+
131
+ \u5E73\u53F0\u5305\u7248\u672C\uFF1A\`__PACKAGES_VERSION__\`\uFF1BCLI \u7248\u672C\uFF1A\`__CLI_VERSION__\`\u3002CLI \u4E0E\u5E73\u53F0\u5305\u5206\u522B\u5347\u7EA7\u3002
132
+
133
+ ## \u5B89\u88C5\u4E0E\u542F\u52A8
134
+
135
+ \`\`\`sh
136
+ npm install --registry https://registry.npmjs.org/
137
+ npm run dev
138
+ \`\`\`
139
+
140
+ \u672C\u5730\u9ED8\u8BA4 http://localhost:8080\u3002\`.env.development.local\` \u53EF\u8986\u76D6 IP\u3001BASE_CLIENT_ID\u3001BASE_SYSTEM_ID \u7B49\u914D\u7F6E\u3002\u5B9E\u4F53\u7EC4\u4EF6\u9700\u8981\u53EF\u7528\u540E\u7AEF\u548C\u5BF9\u5E94\u5143\u6570\u636E\uFF1B\u521D\u59CB\u6B22\u8FCE\u9875\u53EF\u72EC\u7ACB\u8FD0\u884C\u3002
141
+
142
+ ## \u5E94\u7528\u5165\u53E3
143
+
144
+ \`\`\`js
145
+ import { createApp } from '@epxing/core'
146
+ import Components from '@epxing/component'
147
+ import Business from '@epxing/business'
148
+ import '@epxing/theme'
149
+ import App from './App.vue'
150
+ import product from './index'
151
+
152
+ const app = createApp({ rootComponent: App })
153
+ app.use(Components)
154
+ app.use(Business)
155
+ app.use(product)
156
+ app.mount('#app')
157
+ \`\`\`
158
+
159
+ createApp \u8FD4\u56DE Vue App\uFF0C\u9ED8\u8BA4\u521B\u5EFA\u72EC\u7ACB store\u3001hash router \u548C HTTP \u5BA2\u6237\u7AEF\u3002\u9700\u8981\u81EA\u5B9A\u4E49\u65F6\u4F20\u5165 \`{ rootComponent, store, router, http: productHttp }\`\u3002\u4EA7\u54C1 HTTP \u5BA2\u6237\u7AEF\u9700\u5B9E\u73B0\u9875\u9762\u5B9E\u9645\u8C03\u7528\u7684 find/get/list/save \u7B49\u534F\u8BAE\u3002
160
+
161
+ \u4ECE\u5E73\u53F0\u5305 5.3.0-beta.2 \u8D77\uFF0Ccore\u3001component/components\u3001business\u3001designer\u3001dashboard \u7684 JS \u5165\u53E3\u81EA\u52A8\u52A0\u8F7D\u672C\u5305\u805A\u5408\u6837\u5F0F\uFF0C\u6839\u5BFC\u5165\u548C\u7EC4\u4EF6\u5B50\u8DEF\u5F84\u90FD\u65E0\u9700\u624B\u52A8 import style.css\u3002utils \u548C icons \u5DE5\u5177\u4E0D\u52A0\u8F7D UI \u6837\u5F0F\uFF1Btheme \u4ECD\u662F\u663E\u5F0F\u4F7F\u7528\u7684 SCSS \u6E90\u7801\u5305\u3002\u81EA\u52A8\u52A0\u8F7D\u6309\u5305\u805A\u5408\uFF0C\u4E0D\u662F\u5355\u4E2A\u7EC4\u4EF6\u7684 CSS \u88C1\u526A\u3002
162
+
163
+ \u4FDD\u7559 style.css \u5165\u53E3\u4EE5\u517C\u5BB9\u65E7\u4EE3\u7801\uFF1B\u5DF2\u6709\u624B\u52A8\u5BFC\u5165\u53EF\u4EE5\u5220\u9664\u3002\u4EA7\u54C1\u8986\u76D6\u6837\u5F0F\u653E\u5728\u6846\u67B6\u5BFC\u5165\u4E4B\u540E\u3002CLI \u6307\u5B9A\u65E7\u7248\u672C\u6216\u65E0\u6CD5\u786E\u5B9A\u7248\u672C\u4E0B\u9650\u7684\u6807\u7B7E\u65F6\uFF0C\u4F1A\u4FDD\u5B88\u4FDD\u7559\u663E\u5F0F CSS \u5BFC\u5165\u3002
164
+
165
+ \u4EA7\u54C1\u9700\u8981\u5E73\u53F0\u767B\u5F55\u4E0E\u57FA\u7840\u8DEF\u7531\u65F6\uFF0C\u53EF\u4F7F\u7528 \`createApp({ router: createFrameRouter() })\`\uFF0C\u5E76\u5B89\u88C5\u57FA\u7840\u7EC4\u4EF6\u4E0E Business\uFF0C\u914D\u7F6E\u5BA2\u6237\u7AEF/\u7CFB\u7EDF\u53C2\u6570\u548C\u540E\u7AEF\uFF1B\u9ED8\u8BA4\u8DEF\u7531\u6839\u89C6\u56FE\u7531 core \u63D0\u4F9B\u3002\u81EA\u6709\u8DEF\u7531\u5219\u4F20\u5165\u4EA7\u54C1 router \u6216 routes\u3002
166
+
167
+ ## \u7EC4\u4EF6\u4E0E\u5DE5\u5177
168
+
169
+ \`\`\`js
170
+ import { EntityList, AddForm, AddFormItem } from '@epxing/component'
171
+ import { UserFind, EntityTreeManage } from '@epxing/business'
172
+ import { mixins, getSystemMeta, getFileUrl, http, createFieldFactory } from '@epxing/core'
173
+ import { cloneDeep, moment, resolvePlaceholders, storage } from '@epxing/utils'
174
+
175
+ export default {
176
+ name: 'epx-__NAME__-employee-list',
177
+ extends: EntityList,
178
+ metaId: '\u4EA7\u54C1\u5B9E\u9645\u5143\u6570\u636EID',
179
+ pageSize: 20
180
+ }
181
+ \`\`\`
182
+
183
+ \u914D\u7F6E\u9A71\u52A8\u7EC4\u4EF6\u7ECF $configs \u8BFB\u53D6\u5408\u6210\u914D\u7F6E\u3002ComponentMixin/mixins.component \u63D0\u4F9B\u9875\u9762\u4E0A\u4E0B\u6587\uFF1B\u666E\u901A Vue props \u4E0E\u914D\u7F6E\u9879\u8BF7\u6309\u5404\u7EC4\u4EF6 API \u4F7F\u7528\u3002\`runExpByScope.call(vm, scopes, data)\` \u4FDD\u7559\u7EC4\u4EF6\u4E0A\u4E0B\u6587\u3002\u9ED8\u8BA4\u5DE5\u5177\u5BF9\u8C61\u4E0E\u5177\u540D API \u4EE5\u5BF9\u5E94\u5305 API.md \u4E3A\u51C6\u3002
184
+
185
+ \u9700\u8981\u8BBE\u8BA1\u5668/\u770B\u677F\u65F6\uFF0C\u5B89\u88C5\u540C\u7248\u672C \`@epxing/designer\` / \`@epxing/dashboard\`\uFF0C\u5728\u672C\u5730\u5E94\u7528\u5BFC\u5165\u5E76\u5B89\u88C5\u63D2\u4EF6\uFF0C\u6837\u5F0F\u81EA\u52A8\u52A0\u8F7D\u3002\u8FDC\u7A0B\u4EA7\u54C1\u4F7F\u7528\u516C\u5F00\u7EC4\u4EF6\uFF0C\u5BBF\u4E3B\u8D1F\u8D23\u5B89\u88C5\u8BBE\u8BA1/\u4E1A\u52A1\u63D2\u4EF6\u53CA\u52A0\u8F7D\u5176\u6837\u5F0F\u3002
186
+
187
+ \u5404\u5305 API.md \u968F\u5B89\u88C5\u5305\u63D0\u4F9B\uFF0C\u53EF\u5728 node_modules/@epxing/<\u5305\u540D>/API.md \u67E5\u770B\u3002\u5355\u6570 component \u4E0E\u590D\u6570 components \u4F7F\u7528\u76F8\u540C\u7EC4\u4EF6\u5BF9\u8C61\uFF0C\u4EA7\u54C1\u7EDF\u4E00\u9009\u4E00\u4E2A\u540D\u79F0\u3002\u65B0\u4EE3\u7801\u4F7F\u7528\u6839\u5BFC\u51FA\u53CA\u7A33\u5B9A\u5B50\u8DEF\u5F84\u3002
188
+
189
+ ## \u72EC\u7ACB\u5E94\u7528\u4E0E\u8FDC\u7A0B\u4EA7\u54C1\u5E93
190
+
191
+ \`\`\`sh
192
+ npm run build:app # dist/\uFF1A\u72EC\u7ACB\u5E94\u7528\uFF0C\u4F7F\u7528 npm \u5305
193
+ npx epxing lib # lib/\uFF1A\u9ED8\u8BA4\u6309\u9700\u4EA7\u54C1\u5E93
194
+ npx epxing lib --full # lib/\uFF1A\u5B8C\u6574\u4EA7\u54C1\u5E93
195
+ npm run build:lib # \u76F4\u63A5 Vite \u5B8C\u6574\u5E93\u6784\u5EFA
196
+ npm run build:lib:lazy # \u663E\u5F0F\u6309\u9700\u5E93\u6784\u5EFA
197
+ \`\`\`
198
+
199
+ vite.config.mjs \u53EA\u5728\u8FDC\u7A0B\u5E93\u6784\u5EFA\u542F\u7528 epxShared\u3002\u5B83\u5C06\u516C\u5F00 core/component/utils/business/designer \u548C Vue \u5BFC\u5165\u8FDE\u63A5\u5230\u5BBF\u4E3B\u5171\u4EAB\u547D\u540D\u7A7A\u95F4\uFF0C\u907F\u514D\u91CD\u590D\u6253\u5305\u8FD0\u884C\u65F6\uFF1B\u4E0D\u652F\u6301\u7684\u6DF1\u8DEF\u5F84\u4F1A\u5728\u6784\u5EFA\u65F6\u62A5\u9519\u3002\u5BBF\u4E3B\u5FC5\u987B\u5B89\u88C5\u76F8\u540C\u7248\u672C\u7684\u5E73\u53F0\u5305\uFF0C\u5E76\u5148\u5B8C\u6210\u5BF9\u5E94\u7EC4\u4EF6\u7EC4\u7684\u52A0\u8F7D\u3002\u770B\u677F\u8FDC\u7A0B\u5171\u4EAB\u5165\u53E3\u5C1A\u672A\u63D0\u4F9B\uFF0C\u4F7F\u7528\u770B\u677F\u7684\u8FDC\u7A0B\u4EA7\u54C1\u5E94\u7531\u5BBF\u4E3B\u63D0\u4F9B\u6CE8\u518C\u7EC4\u4EF6\u5E76\u6838\u5BF9\u6784\u5EFA\u4F9D\u8D56\u3002
200
+
201
+ \u5E93\u5165\u53E3\u4FDD\u7559\u7EC4\u4EF6\u6536\u96C6\u3001install \u5E42\u7B49\u548C runtime: vue3\u3002\u65B0\u589E\u7EC4\u4EF6\u653E\u5165 src/__DIRNAME__/ \u5373\u81EA\u52A8\u6536\u96C6\uFF1B\u4EA7\u54C1\u81EA\u6709\u8DEF\u7531\u548C store \u6A21\u5757\u5E94\u5728 install(app) \u4E2D\u6CE8\u518C\uFF0C\u5E76\u786E\u4FDD\u91CD\u590D\u5B89\u88C5\u5B89\u5168\u3002
202
+
203
+ \u6309\u9700\u4EA7\u7269\u5FC5\u987B\u4E0A\u4F20\u6574\u4E2A lib/ \u76EE\u5F55\uFF0C\u5305\u62EC chunks\u3001shims\u3001index.manifest.json\u3001index.full.js \u548C\u6837\u5F0F\u3002\u5E73\u53F0 FM_SYSTEM_WEBPACK \u4ECD\u914D\u7F6E index.js / index.css URL\uFF0Cindex.deps.json \u4E0E\u5165\u53E3\u540C\u76EE\u5F55\u90E8\u7F72\u3002\u72EC\u7ACB\u5E94\u7528\u90E8\u7F72 dist/\u3002
204
+
205
+ ## \u5B58\u91CF\u4EA7\u54C1\u5347\u7EA7
206
+
207
+ \`\`\`sh
208
+ epxing migrate . --packages-version __PACKAGES_VERSION__
209
+ epxing migrate . --packages-version __PACKAGES_VERSION__ --apply
210
+ epxing migrate . --packages-version __PACKAGES_VERSION__ --transform-vue --to-vite --apply
211
+ \`\`\`
212
+
213
+ \u9ED8\u8BA4\u53EA\u8BFB\u9884\u89C8\uFF1B--apply \u8981\u6C42 Git \u5DE5\u4F5C\u6811\u5E72\u51C0\u3002\u5347\u7EA7\u4FDD\u7559\u4E1A\u52A1\u7EC4\u4EF6\u3001\u8DEF\u7531\u3001store \u548C\u81EA\u5B9A\u4E49\u914D\u7F6E\uFF0C\u53EA\u81EA\u52A8\u6539\u5199\u786E\u5B9A\u7684\u5BFC\u5165\u53CA\u5165\u53E3\u3002\u52A8\u6001\u53D6\u503C\u3001\u672A\u77E5\u65E7\u63A5\u53E3\u3001\u672A\u652F\u6301\u7684\u6E90\u7801\u8DEF\u5F84\u8FDB\u5165 MIGRATION-REPORT.md \u4EBA\u5DE5\u6E05\u5355\uFF1B\u5B58\u5728\u65E0\u6CD5\u5B8C\u6574\u5207\u6362\u7684\u65E7\u5165\u53E3\u65F6\uFF0C\u4E0D\u6DF7\u88C5\u4E24\u5957\u8FD0\u884C\u65F6\uFF0C\u5148\u4FDD\u7559\u65E7\u6A21\u5F0F\u5E76\u5B8C\u6210\u6E05\u5355\u518D\u5347\u7EA7\u3002
214
+
215
+ Vue 2 \u8BED\u6CD5\u8F6C\u6362\u3001\u7B2C\u4E09\u65B9\u7EC4\u4EF6\u66FF\u6362\u3001\u65E5\u671F\u53C2\u6570\u3001\u4E3B\u9898\u548C\u6837\u5F0F\u9694\u79BB\u9700\u7ED3\u5408\u62A5\u544A\u590D\u6838\u3002\u6784\u5EFA\u901A\u8FC7\u540E\u4ECD\u9700\u5728\u771F\u5B9E\u540E\u7AEF\u9A8C\u6536\u767B\u5F55\u3001\u6743\u9650\u3001\u5217\u8868\u3001\u8868\u5355\u3001\u5F39\u5C42\u53CA\u5173\u952E\u6D41\u7A0B\u3002
216
+
217
+ ## \u66F4\u65B0\u7248\u672C
218
+
219
+ \`\`\`sh
220
+ npm install -g @epxing/cli@beta --registry https://registry.npmjs.org/
221
+ epxing --version
222
+ \`\`\`
223
+
224
+ \u6D4B\u8BD5\u7248\u4F7F\u7528 beta \u6807\u7B7E\uFF1B\u4EA7\u54C1\u5C06 @epxing \u5E73\u53F0\u5305\u56FA\u5B9A\u5728\u540C\u4E00\u5DF2\u9A8C\u8BC1\u7248\u672C\u3002CLI \u66F4\u65B0\u4E0D\u4F1A\u81EA\u52A8\u6539\u4EA7\u54C1\u4F9D\u8D56\uFF0C\u6309 migrate \u9884\u89C8\u3001\u5BA1\u9605\u3001\u5E94\u7528\u3001\u5B89\u88C5\u3001\u6784\u5EFA\u548C\u9A8C\u6536\u7684\u987A\u5E8F\u66F4\u65B0\u3002
225
+ `;var Vt=["core","component","utils","business","designer"],W=new Map;for(let e of Vt)for(let t of Object.keys(q["@epxing/"+e].exports))["default","install"].includes(t)||(W.has(t)||W.set(t,[]),W.get(t).push({source:"@epxing/"+e,name:t}));for(let e of["Dashboard","DashboardTabs","DashboardTitle","DashboardDiv","DashboardWidget"])W.set(e,[{source:"@epxing/dashboard",name:e}]);var Ot={Vue:{source:"vue",name:"*"},vuex:{source:"vuex",name:"*"},Vuex:{source:"vuex",name:"*"},store:{source:"@epxing/core/runtime",name:"runtimeStore"},router:{source:"@epxing/core/runtime",name:"runtimeRouter"},componentMixin:{source:"@epxing/core",name:"ComponentMixin"},globalMixin:{source:"@epxing/core",name:"GlobalMixin"}},ge=l(e=>Ot[e]||(W.get(e)?.length===1?W.get(e)[0]:null),"fromRoot"),V=l((e,t,n)=>{if(!(!e||typeof e!="object")){e.type&&t(e,n);for(let[o,s]of Object.entries(e))["loc","leadingComments","trailingComments","innerComments","extra"].includes(o)||(Array.isArray(s)?s.forEach(i=>V(i,t,e)):s&&typeof s=="object"&&V(s,t,e))}},"walk"),Bt=l(e=>e?.key?.name??e?.key?.value,"keyOf"),ot=l(e=>/^(?:epx-frame(?:\/|$)|@epx\/)/.test(e),"oldRoot"),K=l(e=>e.replace(/^@epx\//,"@epxing/").replace(/^@epxing\/components(?=\/|$)/,"@epxing/component"),"canonical"),J=new Map;for(let[e,t]of Object.entries(tt))for(let[n,o]of Object.entries(t))J.set(`@epxing/${e}/src/${o}`,`@epxing/${e}/${n}`);for(let[e,t]of Object.entries(q)){if(!e.startsWith("@epxing/component/"))continue;let n=e.slice(18);J.set("@epxing/component/src/"+n,e);let o=t.exports.default?.[0];o&&J.set(`@epxing/component/src/${n}/${o}`,e)}for(let[e,t]of Object.entries({util:"util",meta:"meta",fieldFactory:"field-factory","pdf.viewer":"pdf-viewer"}))J.set("@epxing/utils/src/"+e,"@epxing/core/"+t);function Ut(e){if(/^epx-frame\/(core|components|business|designer|dashboard|utils)$/.test(e))return K(e.replace("epx-frame/","@epxing/"));let t={"epx-frame/build/vite-plugin-frame-deps.mjs":"frameDeps","epx-frame/build/vite-plugin-lazy-lib.mjs":"lazyLib","epx-frame/build/vite-plugin-epx-shared.mjs":"epxShared"};if(t[e])return{source:"@epxing/cli/vite",defaultName:t[e]};if(e==="epx-frame/build/vite-plugin-icons.mjs")return"@epxing/icons";if(e.startsWith("epx-frame/packages/theme/src/"))return e.replace("epx-frame/packages/theme/","@epxing/theme/");let n=K(e).replace(/\.(?:vue|js|jsx|mjs)$/,"").replace(/\/index$/,"");return J.has(n)?J.get(n):/^@epxing\/theme\/src\//.test(e)||e.startsWith("@epx/")&&!n.includes("/src/")?K(e):null}l(Ut,"moduleTarget");function it(e,{filename:t,bootstrap:n,packagesVersion:o}){let s=[],i=[],p=new Set,r=new Set,m=new Set,a;try{a=(0,X.parse)(e,{sourceType:"unambiguous",plugins:["jsx","typescript","decorators-legacy","importAttributes"]})}catch(f){return{source:e,manual:[`${t} \u65E0\u6CD5\u9759\u6001\u89E3\u6790\uFF1A${f.message}`],blocked:!0}}let u=new Set;V(a,f=>{f.type==="Identifier"&&u.add(f.name)});let y=l(f=>{let k="__epx"+f;for(;u.has(k);)k+="_";return u.add(k),k},"unique");function v(f,k,c=!1){f.source==="@epxing/core/runtime"&&["runtimeStore","runtimeRouter"].includes(f.name)&&m.add(k);let d=f.name==="*"?`* as ${k}`:`{ ${c?"type ":""}${f.name}${f.name===k?"":" as "+k} }`;p.add(`import ${d} from '${f.source}'`)}l(v,"addImport");function A(f,k,c){let d=[],b=[];if(V(a,(S,E)=>{if(!(!["Identifier","JSXIdentifier"].includes(S.type)||S.name!==f||S.start>=c.start&&S.end<=c.end))if((E?.type==="MemberExpression"||E?.type==="OptionalMemberExpression")&&E.object===S){let I=E.computed?E.property.type==="StringLiteral"?E.property.value:null:E.property.name,M=I&&k(I);M?d.push({node:E,target:M,property:I}):b.push(I||"\u52A8\u6001\u5C5E\u6027")}else b.push("\u76F4\u63A5\u5F15\u7528\u6216\u540C\u540D\u5C40\u90E8\u7ED1\u5B9A")}),b.length){s.push(`${t}\uFF1A${f} \u542B\u65E0\u6CD5\u786E\u5B9A\u7684\u8BBF\u95EE\uFF08${[...new Set(b)].join("\u3001")}\uFF09\uFF0C\u4FDD\u7559\u65E7\u5165\u53E3\uFF0C\u9700\u4EBA\u5DE5\u62C6\u5206\u3002`);return}let x=new Map;for(let S of d){let E=S.target.source+":"+S.target.name;if(!x.has(E)){let I=y(S.property);v(S.target,I),x.set(E,I)}i.push({start:S.node.start,end:S.node.end,text:x.get(E)}),S.target.name==="createApp"&&r.add(S.node)}}l(A,"namespace");for(let f of a.program.body){if(!["ImportDeclaration","ExportNamedDeclaration","ExportAllDeclaration"].includes(f.type)||!f.source)continue;let k=f.source.value,c=k==="epx-frame",d=Ut(k);if(c||ot(k)||k.startsWith("@epxing/")&&k.includes("/src/")){if(!c&&!d){s.push(`${t}\uFF1A\u5C1A\u65E0\u516C\u5F00\u6620\u5C04 ${k}\uFF0C\u9700\u6539\u7528\u5BF9\u5E94\u5305\u516C\u5F00 API\u3002`);continue}if(f.type!=="ImportDeclaration"){if(c||typeof d=="object"){s.push(`${t}\uFF1A${k} \u7684\u91CD\u5BFC\u51FA\u9700\u4EBA\u5DE5\u62C6\u5206\u3002`);continue}i.push({start:f.source.start,end:f.source.end,text:JSON.stringify(d)});continue}if(!f.specifiers.length){c||typeof d=="object"?s.push(`${t}\uFF1A\u526F\u4F5C\u7528\u5BFC\u5165 ${k} \u65E0\u6CD5\u6620\u5C04\u3002`):i.push({start:f.source.start,end:f.source.end,text:JSON.stringify(d)});continue}for(let x of f.specifiers){let S=x.local.name;if(c||d==="@epxing/utils"&&x.type!=="ImportSpecifier")if(x.type!=="ImportSpecifier")A(S,E=>d==="@epxing/utils"&&q["@epxing/utils"].exports[E]?{source:"@epxing/utils",name:E}:ge(E),f);else{let E=x.imported.name||x.imported.value,I=ge(E);if(!I){s.push(`${t}\uFF1A\u65E7\u6839\u5BFC\u51FA ${E} \u4E0D\u552F\u4E00\u6216\u5C1A\u672A\u516C\u5F00\uFF0C\u9700\u4EBA\u5DE5\u9009\u62E9\u3002`);continue}v(I,S,f.importKind==="type"||x.importKind==="type"),I.name==="createApp"&&r.add(S)}else{let E=typeof d=="string"?{source:d}:d,I=x.type==="ImportDefaultSpecifier"?E.defaultName||"default":x.type==="ImportNamespaceSpecifier"?"*":x.imported.name||x.imported.value;if(E.source==="@epxing/utils"&&x.type==="ImportSpecifier"&&!q["@epxing/utils"].exports[I]){let M=ge(I);M?v(M,S):s.push(`${t}\uFF1Autils \u7684\u65E7\u5BFC\u51FA ${I} \u5C1A\u65E0\u786E\u5B9A\u6620\u5C04\u3002`);continue}I==="default"?p.add(`import ${S} from '${E.source}'`):v({source:E.source,name:I},S,f.importKind==="type"||x.importKind==="type"),I==="createApp"&&E.source==="@epxing/core"&&r.add(S)}}i.push({start:f.start,end:f.end,text:""})}}if(V(a,(f,k)=>{f.type!=="StringLiteral"||!ot(f.value)||k?.type==="ImportDeclaration"||/Export/.test(k?.type||"")||k?.type==="CallExpression"&&(k.callee.type==="Import"||k.callee.name==="require")&&s.push(`${t}\uFF1A\u52A8\u6001\u5BFC\u5165/require ${f.value} \u9700\u8981\u4EBA\u5DE5\u6539\u5199\u3002`)}),n&&r.size){let f=!1,k=1/0;V(a,c=>{if(c.type==="VariableDeclaration")for(let d of c.declarations){let b=d.init;if(b?.type!=="CallExpression"||d.id.type!=="Identifier"||!r.has(b.callee)&&!r.has(b.callee?.name))continue;let x=d.id.name;if(k=Math.min(k,b.start),!b.arguments.length){let I=y("CreateFrameRouter");v({source:"@epxing/core",name:"createFrameRouter"},I),i.push({start:b.end-1,end:b.end-1,text:`{ router: ${I}() }`})}let S=y("Components"),E=y("Business");p.add(`import ${S} from '@epxing/component'`),p.add(`import ${E} from '@epxing/business'`);for(let I of["@epxing/theme",...le(o)?[]:me])!e.includes(`'${I}'`)&&!e.includes(`"${I}"`)&&p.add(`import '${I}'`);i.push({start:c.end,end:c.end,text:`
226
+ ${x}.use(${S})
227
+ ${x}.use(${E})
228
+ `}),f=!0}}),f||s.push(`${t}\uFF1A\u672A\u8BC6\u522B const app = createApp(...) \u542F\u52A8\u8BED\u53E5\uFF0C\u9700\u4EBA\u5DE5\u5B89\u88C5\u7EC4\u4EF6\u548C\u4E1A\u52A1\u63D2\u4EF6\u3002`),V(a,(c,d)=>{c.type==="Identifier"&&m.has(c.name)&&c.start<k&&d?.type==="MemberExpression"&&d.object===c&&s.push(`${t}\uFF1A${c.name} \u5728 createApp \u524D\u4F7F\u7528\uFF1B\u5148\u521B\u5EFA\u4EA7\u54C1 store/router \u5E76\u663E\u5F0F\u4F20\u5165 core\uFF0C\u518D\u5207\u6362\u72EC\u7ACB\u5305\u3002`)})}if(s.length)return{source:e,manual:s,blocked:!0};i.sort((f,k)=>k.start-f.start||k.end-f.end);let L=e;for(let f of i)L=L.slice(0,f.start)+f.text+L.slice(f.end);p.size&&(L=[...p].join(`
229
+ `)+`
230
+ `+L);try{(0,X.parse)(L,{sourceType:"unambiguous",plugins:["jsx","typescript","decorators-legacy","importAttributes"]})}catch(f){return{source:e,manual:[`${t}\uFF1A\u8F6C\u6362\u540E\u8BED\u6CD5\u9A8C\u8BC1\u5931\u8D25\uFF0C\u4FDD\u7559\u539F\u6587\uFF1A${f.message}`],blocked:!0}}return{source:L,manual:s,blocked:!1}}l(it,"transformScript");function Gt(e,t={}){if(t.filename?.endsWith(".vue")){let n=[],o=!1,s=e.replace(/(<script\b[^>]*>)([\s\S]*?)(<\/script>)/g,(i,p,r,m)=>{let a=it(r,t);return n.push(...a.manual),o||=a.blocked,p+a.source+m});return{source:o?e:s,manual:n,blocked:o}}return it(e,t)}l(Gt,"rewritePackageImports");function st({read:e,files:t,packagesVersion:n,cliVersion:o="0.5.0-beta.1",templates:s,newVite:i=!1}){let p=[],r=[];if(!/^(?:[~^]?\d+\.\d+\.\d+(?:-[\w.-]+)?|[a-z][\w.-]*)$/.test(n))throw new Error("--packages-version \u9700\u8981 npm \u7248\u672C\u3001\u7248\u672C\u8303\u56F4\u6216\u6807\u7B7E");let m=nt(s,n),a=JSON.parse(e("package.json")),u=(e("src/index.js")||"").match(/import\.meta\.glob\(\s*['"]\.\/([^/'"]+)\//)?.[1]||a.name||"product",y=l(c=>c.replaceAll("__NAME__",a.name||"product").replaceAll("__DIRNAME__",u).replaceAll("__PACKAGES_VERSION__",n).replaceAll("__CLI_VERSION__",o),"render"),v=["vite.config.mjs","vite.config.js","vite.config.ts"].find(c=>e(c)!=null);if(!v&&e("webpack.config.js")!=null)return{changes:[],manual:["\u72EC\u7ACB\u5305\u8FDC\u7A0B\u5171\u4EAB\u9700\u8981 Vite\uFF1B\u8BF7\u52A0 --to-vite \u6216\u5148\u624B\u5DE5\u8FC1\u79FB\u6784\u5EFA\u914D\u7F6E\u3002"],blocked:!0};let A=v&&!i?[v]:[],L=new Set;for(let c of[...t,...A]){let d=e(c);if(!d||!/epx-frame|@epx(?:ing)?\//.test(d))continue;let b=Gt(d,{filename:c,packagesVersion:n,bootstrap:/(?:^|\/)main\.[jt]s$/.test(c)});r.push(...b.manual);let x=b.source;if(c===v&&!b.blocked&&!x.includes("epxShared(")){let E=(0,X.parse)(x,{sourceType:"module",plugins:["typescript","jsx","importAttributes"]}),I;V(E,M=>{!I&&M.type==="ObjectProperty"&&Bt(M)==="plugins"&&M.value.type==="ArrayExpression"&&(I=M.value)}),I?x=`import { epxShared as __epxShared } from '@epxing/cli/vite'
231
+ `+x.slice(0,I.start+1)+"__epxShared(), "+x.slice(I.start+1):r.push(`${c}\uFF1Aplugins \u6570\u7EC4\u65E0\u6CD5\u786E\u5B9A\uFF0C\u9700\u4EBA\u5DE5\u63A5\u5165 @epxing/cli/vite \u7684 epxShared\u3002`)}let S=c.endsWith(".vue")?[...x.matchAll(/<script\b[^>]*>([\s\S]*?)<\/script>/g)].map(E=>E[1]):[x];for(let E of S){let I=(0,X.parse)(E,{sourceType:"unambiguous",plugins:["typescript","jsx","decorators-legacy","importAttributes"]});V(I,(M,Q)=>{if(M.type!=="StringLiteral"||!/^(?:ImportDeclaration|ExportNamedDeclaration|ExportAllDeclaration)$/.test(Q?.type||"")&&!(Q?.type==="CallExpression"&&(Q.callee.type==="Import"||Q.callee.name==="require")))return;let Se=M.value.match(/^(@epxing\/[\w-]+)/)?.[1];Se&&L.add(Se)})}x!==d&&p.push({file:c,after:x})}if(r.length)return{changes:[],manual:r,blocked:!0};if(i){p.push({file:v||"vite.config.mjs",after:y(m["vite.config.mjs"])});for(let c of["@epxing/cli","@epxing/icons","@epxing/theme"])L.add(c)}a.dependencies||={},a.devDependencies||={};for(let[c,d]of Object.entries(JSON.parse(y(m["package.json"])).dependencies))c.startsWith("@epxing/")&&!L.has(c)&&!["@epxing/core","@epxing/component","@epxing/utils"].includes(c)||(a.dependencies[c]=d);for(let c of["dependencies","devDependencies","peerDependencies"])for(let d of Object.keys(a[c]||{}))if(d.startsWith("@epx/")){let b=K(d);a[c][b]=n,delete a[c][d]}else d.startsWith("@epxing/")&&d!=="@epxing/cli"&&(a[c][d]=n);for(let c of L){let d=["@epxing/cli","@epxing/icons"].includes(c),b=d?"devDependencies":"dependencies";a[b][c]=c==="@epxing/cli"?o:n,delete a[d?"dependencies":"devDependencies"][c]}let f=v&&/node_modules\/epx-frame\/lib/.test(e(v)||"")&&!i;f?(a.devDependencies["epx-frame"]=a.dependencies["epx-frame"]||a.devDependencies["epx-frame"],delete a.dependencies["epx-frame"]):(delete a.dependencies["epx-frame"],delete a.devDependencies["epx-frame"]),a.runtime="vue3",p.push({file:"package.json",after:JSON.stringify(a,null,2)+`
232
+ `});let k=e("PRODUCT-GUIDE.md")==null||e("PRODUCT-GUIDE.md").includes("<!-- epxing-generated-product-guide -->")?"PRODUCT-GUIDE.md":"EPXING-PACKAGES-GUIDE.md";return e(k)!=null&&!e(k).includes("<!-- epxing-generated-product-guide -->")?{changes:[],manual:[`${k} \u5DF2\u6709\u81EA\u5B9A\u4E49\u5185\u5BB9\uFF0C\u5148\u6307\u5B9A\u6216\u817E\u51FA\u72EC\u7ACB\u5305\u4F7F\u7528\u8BF4\u660E\u8DEF\u5F84\u540E\u91CD\u8BD5\u3002`],blocked:!0}:(p.push({file:k,after:y(m["PRODUCT-GUIDE.md"])}),{changes:p,manual:f?["\u73B0\u6709 Vite \u9759\u6001\u8D44\u6E90\u4EE3\u7406\u4ECD\u8BFB\u53D6 epx-frame/lib\uFF0C\u6682\u4FDD\u7559\u4E3A\u5F00\u53D1\u4F9D\u8D56\uFF1B\u8FD0\u884C\u65F6\u6E90\u7801\u5DF2\u6539\u4E3A\u72EC\u7ACB\u5305\u3002"]:[],blocked:!1})}l(st,"planIndependentPackages");import{TEMPLATES as zt}from"../epx-create/scaffold.mjs";var _=process.argv.slice(2),se=_.indexOf("--epx-frame"),pe=se!==-1?_[se+1]:null;se!==-1&&_.splice(se,2);var xe=_.indexOf("--packages-version"),O=xe===-1?null:_.splice(xe,2)[1],pt=_.indexOf("--cli-version"),at=pt===-1?"0.5.0-beta.1":_.splice(pt,2)[1];if(pe&&O)throw new Error("--packages-version \u4E0E --epx-frame \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A");if(xe!==-1&&(!O||O.startsWith("--")))throw new Error("--packages-version \u7F3A\u5C11\u503C");var w=_.find(e=>!e.startsWith("--")),z=_.includes("--apply"),fe=_.includes("--transform-vue"),ue=_.includes("--report-only"),ct=_.includes("--to-vite"),g=l((...e)=>console.log(...e),"log");pe&&(ee["epx-frame"].target=pe);(!w||!h.existsSync(w))&&(console.error("\u7528\u6CD5\uFF1Anode tools/epx-migrate/migrate.mjs <\u8001\u9879\u76EE\u76EE\u5F55> [--apply] [--transform-vue] [--to-vite] [--report-only] [--epx-frame <spec>]"),process.exit(1));var N=l(e=>F.join(w,e),"rel"),$=l(e=>h.existsSync(N(e))?h.readFileSync(N(e),"utf8"):null,"read"),P=[],C=[],ve=!1,R=l(e=>g(`
21
233
  ${"\u2501".repeat(60)}
22
234
  \u258D ${e}
23
- ${"\u2501".repeat(60)}`),"stage"),vt=p(e=>{let t=String(e),s=/(^|[^\d.])3(\.|x|\b)/.test(t);return/(^|[^\d.])2(\.|x|\b)/.test(t)&&!s},"wantsVue2Only");if(T)try{Q("git status --porcelain",{cwd:E,encoding:"utf8"}).trim()&&(console.error("\u2717 \u9879\u76EE\u5DE5\u4F5C\u6811\u4E0D\u5E72\u51C0\uFF0C--apply \u524D\u8BF7\u5148 commit/stash\uFF08\u4FBF\u4E8E git diff \u5BA1\u67E5\u4E0E\u56DE\u6EDA\uFF09\u3002"),process.exit(1))}catch{console.error("\u2717 \u76EE\u6807\u4E0D\u662F git \u4ED3\u5E93\uFF1B--apply \u9700\u8981 git \u4EE5\u4FBF\u5BA1\u67E5\u56DE\u6EDA\u3002\u5148 git init \u6216\u53BB\u6389 --apply \u8D70 dry-run\u3002"),process.exit(1)}var V=[],I=[],Te=[],ze=p(e=>{for(let t of m.readdirSync(e,{withFileTypes:!0})){let s=S.join(e,t.name);t.isDirectory()&&!/node_modules|\.git|^lib$|^dist$/.test(t.name)?ze(s):t.name.endsWith(".vue")?(V.push(s),I.push(s)):/\.(?:[cm]?js|jsx|ts|tsx)$/.test(t.name)?I.push(s):/\.(?:css|scss|less|sass|styl|stylus)$/.test(t.name)&&Te.push(s)}},"walk");m.existsSync(F("src"))&&ze(F("src"));var re=new Set;for(let e of I){let t=m.readFileSync(e,"utf8");for(let s of t.matchAll(/(?:from\s+|require\()\s*['"]([^'"./][^'"]*)['"]/g)){let o=s[1];o.startsWith("@/")||re.add(o.startsWith("@")?o.split("/").slice(0,2).join("/"):o.split("/")[0])}}var Me=p(e=>{let t=e.match(/<script(\s[^>]*)?>([\s\S]*?)<\/script>/);return t?{attrs:t[1]||"",body:t[2]}:null},"scriptOf"),Ce=p(e=>/[(=,]\s*\n?\s*<[A-Za-z][\w-]*[\s>/]/.test(e),"hasJsx"),A=V.filter(e=>{let t=Me(m.readFileSync(e,"utf8"));return t&&Ce(t.body)});_("\u2460 \u4F9D\u8D56\u8FC1\u79FB\uFF08package.json\uFF09");var Z=w("package.json"),Je=w("webpack.config.js")!=null;if(Z){let e=JSON.parse(Z),t=e.runtime!=="vue3";e.runtime="vue3",t&&l(" [\u6539] runtime \u2192 vue3\uFF08\u521B\u5EFA/\u8FC1\u79FB\u540E\u7684\u8FD0\u884C\u65F6\u6807\u8BC6\uFF09");let s=[],o=p((n,r,c,a)=>{let f=c?"devDependencies":"dependencies";e[f]=e[f]||{},e[f][n]!==r&&(s.push([e[f][n]!=null?"\u6539":"\u52A0",n,e[f][n]||"\u2014",r,a||""]),e[f][n]=r)},"setDep");for(let[n,r]of Object.entries(q))for(let c of["dependencies","devDependencies"]){let a=e[c];a&&a[n]!=null&&(r.target===null?(s.push(["\u5220",n,a[n],"\u2014",r.note||""]),delete a[n]):a[n]!==r.target&&(s.push(["\u6539",n,a[n],r.target,r.note||""]),a[n]=r.target))}if(Je)for(let[n,r]of Object.entries(ae))o(n,r,!0,"lib \u6784\u5EFA\u95ED\u5305");if(A.length)for(let[n,r]of Object.entries(pe))o(n,r,!0,`.vue \u5185 JSX\uFF08${A.length} \u6587\u4EF6\uFF09`);if(V.length)for(let[n,r]of Object.entries(ue))o(n,r,!1,"element-plus \u56FE\u6807\uFF08gogocode \u8F6C\u6362\u4EA7\u7269\u9700\u8981\uFF09");(Z.includes("@vue/eslint-config-standard")||Z.includes("babel-eslint"))&&$.push("lint \u914D\u7F6E\uFF1A\u8001 eslint6+standard5 \u6808\u5DF2\u9000\u5F79\uFF08ERESOLVE \u51B2\u7A81\uFF09\u2014\u2014\u6309\u5E73\u53F0 .eslintrc \u91CD\u5EFA\u89C4\u5219\uFF08eslint8 + plugin-vue9\uFF09");let i={...e.dependencies||{},...e.devDependencies||{}};for(let n of[...re].sort())i[n]||n==="epx-frame"||n==="vue"||(Y[n]?o(n,Y[n],!1,"\u9690\u5F0F\u4F9D\u8D56\u8865\u58F0\u660E\uFF08\u539F\u9760 hoist\uFF09"):$.push(`src \u91CC import \u4E86 \`${n}\` \u4F46 package.json \u672A\u58F0\u660E\u4E14\u4E0D\u5728\u5DF2\u77E5\u7248\u672C\u8868\u2014\u2014\u4EBA\u5DE5\u8865\u7248\u672C`));s.length||t?(s.forEach(([n,r,c,a,f])=>l(` [${n}] ${r.padEnd(26)} ${String(c).padEnd(12)} \u2192 ${String(a).padEnd(12)} ${f}`)),h.push({file:"package.json",after:JSON.stringify(e,null,2)+`
24
- `})):l(" \uFF08\u65E0\u5339\u914D\u4F9D\u8D56\u9700\u8FC1\u79FB\uFF09")}else l(" \u2717 \u672A\u627E\u5230 package.json");_("\u2461 codemod\uFF08main.js / index.js / babel.config.js / webpack.config.js / \u7A7A SFC\uFF09");var C=["src/main.js","src/main.ts","main.js"].find(e=>w(e)!=null);if(C){let e=w(C),t=e,s=[...e.matchAll(/\bVue\.use\(([^)]+)\)\s*;?/g)].map(o=>o[1].trim());if(e=e.replace(/\bVue\.use\([^)]+\)\s*;?\n?/g,""),e=e.replace(/(?:const\s+\w+\s*=\s*)?(\w+\.)?createApp\(\)\.\$mount\((['"][^'"]+['"])\)\s*;?/,(o,i,n)=>{let r=s.map(c=>`app.use(${c})`).join(`
25
- `);return`const app = ${i||""}createApp()
26
- ${r}${r?`
27
- `:""}app.mount(${n})`}),/const app = createApp\(\)/.test(e)){let o=(t.match(/import\s+(\w+)\s*(,|from)/)||[])[1];o&&(e=e.replace("const app = createApp()",`const app = ${o}.createApp()`))}e=xe(e),e!==t?(l(` \u2713 ${C}\uFF1AVue.use(${s.join(",")})\u2192app.use\u3001$mount\u2192mount\u3001import \u6536\u655B`),h.push({file:C,after:e})):l(` \xB7 ${C}\uFF1A\u65E0\u9700\u6539\uFF08\u6216\u5199\u6CD5\u4E0D\u8BC6\u522B\uFF0C\u4EBA\u5DE5\u6838\u5BF9\uFF09`)}else $.push("\u5165\u53E3 main.js \u672A\u627E\u5230\uFF0C\u624B\u52A8\u786E\u8BA4 createApp/mount \u5DF2 Vue3 \u5316");var k=["src/index.js","index.js"].find(e=>w(e)!=null);if(k){let e=w(k),t=e;e=we(e),/require\.context/.test(e)&&$.push(`${k}\uFF1Arequire.context\uFF08webpack \u7279\u6027\uFF09\u3002\u4FDD\u7559 webpack \u6784\u5EFA\u5219\u4E0D\u7528\u6539\uFF1B\u8F6C Vite \u624D\u6362 import.meta.glob`),e!==t?(l(` \u2713 ${k}\uFF1Ainstall \u7B7E\u540D \u2192 (app, ...)\u3001Vue2 \u5168\u5C40 API \u2192 app \u5B9E\u4F8B`),h.push({file:k,after:e})):l(` \xB7 ${k}\uFF1A\u5DF2\u517C\u5BB9\u6216\u5199\u6CD5\u4E0D\u8BC6\u522B`)}var L=["babel.config.js",".babelrc.js"].find(e=>w(e)!=null);if(L){let e=w(L),t=e;e=e.replace(/\[\s*'component'[\s\S]*?\]\s*,?\n?/,""),e=e.replace(/\[\s*'import'[\s\S]*?\]\s*,?\n?/,""),e=e.replace(/,?\s*'@vue\/cli-plugin-babel\/preset'/,""),A.length&&!e.includes("@vue/babel-plugin-jsx")&&(/plugins:\s*\[/.test(e)?e=e.replace(/plugins:\s*\[/,`plugins: [
235
+ ${"\u2501".repeat(60)}`),"stage"),Wt=l(e=>{let t=String(e),n=/(^|[^\d.])3(\.|x|\b)/.test(t);return/(^|[^\d.])2(\.|x|\b)/.test(t)&&!n},"wantsVue2Only");if(z)try{de("git status --porcelain",{cwd:w,encoding:"utf8"}).trim()&&(console.error("\u2717 \u9879\u76EE\u5DE5\u4F5C\u6811\u4E0D\u5E72\u51C0\uFF0C--apply \u524D\u8BF7\u5148 commit/stash\uFF08\u4FBF\u4E8E git diff \u5BA1\u67E5\u4E0E\u56DE\u6EDA\uFF09\u3002"),process.exit(1))}catch{console.error("\u2717 \u76EE\u6807\u4E0D\u662F git \u4ED3\u5E93\uFF1B--apply \u9700\u8981 git \u4EE5\u4FBF\u5BA1\u67E5\u56DE\u6EDA\u3002\u5148 git init \u6216\u53BB\u6389 --apply \u8D70 dry-run\u3002"),process.exit(1)}var j=[],D=[],lt=[],mt=l(e=>{for(let t of h.readdirSync(e,{withFileTypes:!0})){let n=F.join(e,t.name);t.isDirectory()&&!/node_modules|\.git|^lib$|^dist$/.test(t.name)?mt(n):t.name.endsWith(".vue")?(j.push(n),D.push(n)):/\.(?:[cm]?js|jsx|ts|tsx)$/.test(t.name)?D.push(n):/\.(?:css|scss|less|sass|styl|stylus)$/.test(t.name)&&lt.push(n)}},"walk");h.existsSync(N("src"))&&mt(N("src"));var ke=new Set;for(let e of D){let t=h.readFileSync(e,"utf8");for(let n of t.matchAll(/(?:from\s+|require\()\s*['"]([^'"./][^'"]*)['"]/g)){let o=n[1];o.startsWith("@/")||ke.add(o.startsWith("@")?o.split("/").slice(0,2).join("/"):o.split("/")[0])}}var gt=l(e=>{let t=e.match(/<script(\s[^>]*)?>([\s\S]*?)<\/script>/);return t?{attrs:t[1]||"",body:t[2]}:null},"scriptOf"),ut=l(e=>/[(=,]\s*\n?\s*<[A-Za-z][\w-]*[\s>/]/.test(e),"hasJsx"),B=j.filter(e=>{let t=gt(h.readFileSync(e,"utf8"));return t&&ut(t.body)});R("\u2460 \u4F9D\u8D56\u8FC1\u79FB\uFF08package.json\uFF09");var ne=$("package.json"),dt=$("webpack.config.js")!=null;if(ne){let e=JSON.parse(ne),t=e.runtime!=="vue3";e.runtime="vue3",t&&g(" [\u6539] runtime \u2192 vue3\uFF08\u521B\u5EFA/\u8FC1\u79FB\u540E\u7684\u8FD0\u884C\u65F6\u6807\u8BC6\uFF09");let n=[],o=l((i,p,r,m)=>{let a=r?"devDependencies":"dependencies";e[a]=e[a]||{},e[a][i]!==p&&(n.push([e[a][i]!=null?"\u6539":"\u52A0",i,e[a][i]||"\u2014",p,m||""]),e[a][i]=p)},"setDep");for(let[i,p]of Object.entries(ee))for(let r of["dependencies","devDependencies"]){let m=e[r];m&&m[i]!=null&&(p.target===null?(n.push(["\u5220",i,m[i],"\u2014",p.note||""]),delete m[i]):m[i]!==p.target&&(n.push(["\u6539",i,m[i],p.target,p.note||""]),m[i]=p.target))}if(dt)for(let[i,p]of Object.entries(Ae))o(i,p,!0,"lib \u6784\u5EFA\u95ED\u5305");if(B.length)for(let[i,p]of Object.entries(Fe))o(i,p,!0,`.vue \u5185 JSX\uFF08${B.length} \u6587\u4EF6\uFF09`);if(j.length)for(let[i,p]of Object.entries($e))o(i,p,!1,"element-plus \u56FE\u6807\uFF08gogocode \u8F6C\u6362\u4EA7\u7269\u9700\u8981\uFF09");(ne.includes("@vue/eslint-config-standard")||ne.includes("babel-eslint"))&&C.push("lint \u914D\u7F6E\uFF1A\u8001 eslint6+standard5 \u6808\u5DF2\u9000\u5F79\uFF08ERESOLVE \u51B2\u7A81\uFF09\u2014\u2014\u6309\u5E73\u53F0 .eslintrc \u91CD\u5EFA\u89C4\u5219\uFF08eslint8 + plugin-vue9\uFF09");let s={...e.dependencies||{},...e.devDependencies||{}};for(let i of[...ke].sort())s[i]||i==="epx-frame"||i==="vue"||(ae[i]?o(i,ae[i],!1,"\u9690\u5F0F\u4F9D\u8D56\u8865\u58F0\u660E\uFF08\u539F\u9760 hoist\uFF09"):C.push(`src \u91CC import \u4E86 \`${i}\` \u4F46 package.json \u672A\u58F0\u660E\u4E14\u4E0D\u5728\u5DF2\u77E5\u7248\u672C\u8868\u2014\u2014\u4EBA\u5DE5\u8865\u7248\u672C`));n.length||t?(n.forEach(([i,p,r,m,a])=>g(` [${i}] ${p.padEnd(26)} ${String(r).padEnd(12)} \u2192 ${String(m).padEnd(12)} ${a}`)),P.push({file:"package.json",after:JSON.stringify(e,null,2)+`
236
+ `})):g(" \uFF08\u65E0\u5339\u914D\u4F9D\u8D56\u9700\u8FC1\u79FB\uFF09")}else g(" \u2717 \u672A\u627E\u5230 package.json");R("\u2461 codemod\uFF08main.js / index.js / babel.config.js / webpack.config.js / \u7A7A SFC\uFF09");var Y=["src/main.js","src/main.ts","main.js"].find(e=>$(e)!=null);if(Y){let e=$(Y),t=e,n=[...e.matchAll(/\bVue\.use\(([^)]+)\)\s*;?/g)].map(o=>o[1].trim());if(e=e.replace(/\bVue\.use\([^)]+\)\s*;?\n?/g,""),e=e.replace(/(?:const\s+\w+\s*=\s*)?(\w+\.)?createApp\(\)\.\$mount\((['"][^'"]+['"])\)\s*;?/,(o,s,i)=>{let p=n.map(r=>`app.use(${r})`).join(`
237
+ `);return`const app = ${s||""}createApp()
238
+ ${p}${p?`
239
+ `:""}app.mount(${i})`}),/const app = createApp\(\)/.test(e)){let o=(t.match(/import\s+(\w+)\s*(,|from)/)||[])[1];o&&(e=e.replace("const app = createApp()",`const app = ${o}.createApp()`))}e=De(e),e!==t?(g(` \u2713 ${Y}\uFF1AVue.use(${n.join(",")})\u2192app.use\u3001$mount\u2192mount\u3001import \u6536\u655B`),P.push({file:Y,after:e})):g(` \xB7 ${Y}\uFF1A\u65E0\u9700\u6539\uFF08\u6216\u5199\u6CD5\u4E0D\u8BC6\u522B\uFF0C\u4EBA\u5DE5\u6838\u5BF9\uFF09`)}else C.push("\u5165\u53E3 main.js \u672A\u627E\u5230\uFF0C\u624B\u52A8\u786E\u8BA4 createApp/mount \u5DF2 Vue3 \u5316");var T=["src/index.js","index.js"].find(e=>$(e)!=null);if(T){let e=$(T),t=e;e=Ge(e),/require\.context/.test(e)&&C.push(`${T}\uFF1Arequire.context\uFF08webpack \u7279\u6027\uFF09\u3002\u4FDD\u7559 webpack \u6784\u5EFA\u5219\u4E0D\u7528\u6539\uFF1B\u8F6C Vite \u624D\u6362 import.meta.glob`),e!==t?(g(` \u2713 ${T}\uFF1Ainstall \u7B7E\u540D \u2192 (app, ...)\u3001Vue2 \u5168\u5C40 API \u2192 app \u5B9E\u4F8B`),P.push({file:T,after:e})):g(` \xB7 ${T}\uFF1A\u5DF2\u517C\u5BB9\u6216\u5199\u6CD5\u4E0D\u8BC6\u522B`)}var U=["babel.config.js",".babelrc.js"].find(e=>$(e)!=null);if(U){let e=$(U),t=e;e=e.replace(/\[\s*'component'[\s\S]*?\]\s*,?\n?/,""),e=e.replace(/\[\s*'import'[\s\S]*?\]\s*,?\n?/,""),e=e.replace(/,?\s*'@vue\/cli-plugin-babel\/preset'/,""),B.length&&!e.includes("@vue/babel-plugin-jsx")&&(/plugins:\s*\[/.test(e)?e=e.replace(/plugins:\s*\[/,`plugins: [
28
240
  '@vue/babel-plugin-jsx', // .vue \u5185 JSX\uFF08renderColumn \u7B49\uFF09`):e=e.replace(/module\.exports\s*=\s*\{/,`module.exports = {
29
- plugins: ['@vue/babel-plugin-jsx'],`)),e!==t?(l(` \u2713 ${L}\uFF1A\u5220\u6309\u9700\u63D2\u4EF6/cli preset${A.length?" + \u52A0 @vue/babel-plugin-jsx":""}`),h.push({file:L,after:e})):l(` \xB7 ${L}\uFF1A\u65E0\u9700\u6539`),/@babel\/preset-env/.test(e)||$.push(`${L}\uFF1A\u6CA1\u6709 @babel/preset-env\u2014\u2014\u8865 presets: [['@babel/preset-env']]`),/ie\s*>=?\s*\d/.test(e)&&$.push(`${L}\uFF1Atargets \u542B IE\uFF08Vue3 \u4E0D\u652F\u6301 IE\uFF09\uFF0C\u5EFA\u8BAE\u6539\u73B0\u4EE3\u6D4F\u89C8\u5668`)}if(Je){let e=w("webpack.config.js"),t=e;/frame'\s*,\s*'Vue'/.test(e)||(e=e.replace(/externals:\s*(\/[^\n/]*(?:\\\/[^\n/]*)*\/i?)\s*,/,(s,o)=>`externals: [
241
+ plugins: ['@vue/babel-plugin-jsx'],`)),e!==t?(g(` \u2713 ${U}\uFF1A\u5220\u6309\u9700\u63D2\u4EF6/cli preset${B.length?" + \u52A0 @vue/babel-plugin-jsx":""}`),P.push({file:U,after:e})):g(` \xB7 ${U}\uFF1A\u65E0\u9700\u6539`),/@babel\/preset-env/.test(e)||C.push(`${U}\uFF1A\u6CA1\u6709 @babel/preset-env\u2014\u2014\u8865 presets: [['@babel/preset-env']]`),/ie\s*>=?\s*\d/.test(e)&&C.push(`${U}\uFF1Atargets \u542B IE\uFF08Vue3 \u4E0D\u652F\u6301 IE\uFF09\uFF0C\u5EFA\u8BAE\u6539\u73B0\u4EE3\u6D4F\u89C8\u5668`)}if(dt){let e=$("webpack.config.js"),t=e;/frame'\s*,\s*'Vue'/.test(e)||(e=e.replace(/externals:\s*(\/[^\n/]*(?:\\\/[^\n/]*)*\/i?)\s*,/,(n,o)=>`externals: [
30
242
  ${o},
31
243
  // Vue3 \u7F16\u8BD1\u4EA7\u7269 import 'vue' \u2192 \u8FD0\u884C\u65F6\u7528\u5E73\u53F0\u5171\u4EAB Vue\uFF08window.frame.Vue\uFF09\uFF0C\u4E0D\u6253\u8FDB bundle
32
244
  { vue: { root: ['frame', 'Vue'], commonjs: 'vue', commonjs2: 'vue', amd: 'vue' } }
33
- ],`)),A.length&&(e=e.split(`
34
- `).map(s=>s.includes("test:")&&s.includes(".js")&&!s.includes(".jsx")&&!s.includes("json")&&!s.includes(".vue")?s.replace(".js",".jsx?"):s).join(`
35
- `)),e!==t?(l(` \u2713 webpack.config.js\uFF1Aexternals \u52A0 vue \u5916\u7F6E${A.length?" + babel \u89C4\u5219\u6536 .jsx":""}`),h.push({file:"webpack.config.js",after:e})):l(" \xB7 webpack.config.js\uFF1A\u65E0\u9700\u6539\u6216\u5199\u6CD5\u4E0D\u8BC6\u522B\uFF08\u4EBA\u5DE5\u6838\u5BF9\uFF09")}for(let e of V)m.readFileSync(e,"utf8").trim()===""&&(h.push({file:S.relative(E,e),after:`<script>
245
+ ],`)),B.length&&(e=e.split(`
246
+ `).map(n=>n.includes("test:")&&n.includes(".js")&&!n.includes(".jsx")&&!n.includes("json")&&!n.includes(".vue")?n.replace(".js",".jsx?"):n).join(`
247
+ `)),e!==t?(g(` \u2713 webpack.config.js\uFF1Aexternals \u52A0 vue \u5916\u7F6E${B.length?" + babel \u89C4\u5219\u6536 .jsx":""}`),P.push({file:"webpack.config.js",after:e})):g(" \xB7 webpack.config.js\uFF1A\u65E0\u9700\u6539\u6216\u5199\u6CD5\u4E0D\u8BC6\u522B\uFF08\u4EBA\u5DE5\u6838\u5BF9\uFF09")}for(let e of j)h.readFileSync(e,"utf8").trim()===""&&(P.push({file:F.relative(w,e),after:`<script>
36
248
  // \u539F\u9879\u76EE\u9057\u7559\u7A7A\u6587\u4EF6\uFF08Vue2 loader \u5BB9\u5FCD\u7A7A SFC\uFF0CVue3 \u9700\u81F3\u5C11\u4E00\u4E2A\u5757\uFF09\u2014\u2014\u8865\u6700\u5C0F\u5408\u6CD5\u5185\u5BB9\uFF0C\u884C\u4E3A\u540C\u524D
37
249
  export default {}
38
250
  </script>
39
- `}),l(` \u2713 \u7A7A SFC \u8865\u9F50\uFF1A${S.relative(E,e)}`));_("\u2462 .vue \u6279\u91CF\u8F6C\u6362\uFF08gogocode plugin-vue + plugin-element\uFF0Cstyle \u5757\u5FEB\u7167\u4FDD\u62A4\uFF09");var P=p(e=>V.filter(t=>e.test(m.readFileSync(t,"utf8"))).length,"scan"),X=/<style[^>]*>[\s\S]*?<\/style>/g,qe={"element-ui\uFF08el-*\uFF09\u7528\u6CD5 \u2192 element-plus API \u5DEE\u5F02\uFF08el-dialog visible.sync\u2192v-model\u3001date value-format \u7B49\uFF09":P(/<el-/),'slot="x" / slot-scope\uFF08\u65E7\u63D2\u69FD\uFF09\u2192 v-slot\uFF08gogocode \u81EA\u52A8\uFF09':P(/slot="|slot-scope/),"\u81EA\u5B9A\u4E49\u7EC4\u4EF6 v-model\uFF08value/input \u2192 modelValue\uFF0Cgogocode \u81EA\u52A8\uFF0C\u8FD0\u884C\u65F6\u590D\u6838\uFF09":P(/v-model/),"$on/$off \u4E8B\u4EF6\u603B\u7EBF\uFF08Vue3 \u5B9E\u4F8B\u65E0 $on/$off\uFF1Bepx-frame \u5E73\u53F0 bus \u4ECD\u53EF\u7528\uFF0C\u8DD1\u901A\u540E\u590D\u6838\uFF09":P(/\$on\(|\$off\(/),'JSX in script\uFF08\u5DF2\u81EA\u52A8 lang="jsx"+babel \u63D2\u4EF6\uFF1BscopedSlots \u7B49 Vue2 JSX \u8BED\u4E49\u4EBA\u5DE5\u590D\u6838\uFF09':A.length,"\u8FC7\u6EE4\u5668 {{ x | f }}\uFF08Vue3 \u79FB\u9664\uFF1Bgogocode \u8F6C\u6362\u540E\u590D\u6838\uFF09":P(/\{\{[^}]*\|[^}|]+\}\}/),"$children\uFF08Vue3 \u79FB\u9664\uFF09\u2192 ref/provide-inject\uFF08\u4EBA\u5DE5\uFF09":P(/\$children/),".native \u4FEE\u9970\u7B26\uFF08Vue3 \u79FB\u9664\uFF0C\u4EBA\u5DE5\u590D\u6838\uFF09":P(/\.native/),"\u5185\u8054\u4E8B\u4EF6\u591A\u8BED\u53E5\u7F3A\u5206\u53F7\uFF08Vue2 \u5BB9\u5FCD\u6362\u884C\u5206\u9694\uFF0CVue3 \u7F16\u8BD1\u62A5 Unexpected token\u2014\u2014\u6309\u62A5\u9519\u9010\u4E2A\u8865\u5206\u53F7\uFF09":V.filter(e=>/@[\w.]+="[^"]*\n[^";]*\n/.test(m.readFileSync(e,"utf8"))).length};l(` .vue \u6587\u4EF6\uFF1A${V.length} \u4E2A\uFF08JSX\uFF1A${A.length}\uFF09`);Object.entries(qe).filter(([,e])=>e>0).forEach(([e,t])=>l(` \xB7 ${String(t).padStart(3)} \u6587\u4EF6 ${e}`));var U=".epx-migrate-vue3-out";if(te&&T){let t=I.filter(n=>{try{return m.statSync(n).size>204800}catch{return!1}});if(t.length){let n=t.map(r=>`${S.relative(E,r)}\uFF08${Math.round(m.statSync(r).size/1024)}KB\uFF09`).join("\u3001");l(` \u26A0 ${t.length} \u4E2A\u6E90\u7801\u6587\u4EF6\u8D85\u8FC7 200KB\uFF0Cgogocode \u4F1A\u8DF3\u8FC7\uFF1A${n}`),$.push(`\u4EE5\u4E0B\u6E90\u7801\u6587\u4EF6\u8D85\u8FC7 200KB\uFF0Cgogocode \u7684\u5927\u6587\u4EF6\u4FDD\u62A4\u4F1A\u8DF3\u8FC7\uFF08\u5176\u4F59\u6587\u4EF6\u6B63\u5E38\u8F6C\u6362\uFF09\uFF0C\u9700\u4EBA\u5DE5 Vue3 \u5316\uFF1A${n}`)}l(`
40
- \u8DD1 gogocode\uFF08style \u5757\u5148\u5FEB\u7167\u2014\u2014gogocode \u4F1A\u628A\u6CE8\u91CA\u6389\u7684 scss \u5757\u6539\u6210\u5B64\u513F { \u6216\u6574\u5757\u5220\u6389\uFF09\u2026`);let s=new Map;for(let n of V)s.set(n,m.readFileSync(n,"utf8").match(X)||[]);let o=S.join(oe.homedir(),".epx-migrate","gogocode"),i=ye({projectDir:S.resolve(E),toolDir:S.resolve(S.dirname(dt(import.meta.url)),"../.."),cacheDir:o,versions:W,exists:p(n=>m.existsSync(n),"exists"),log:l,install:p(({cacheDir:n,specs:r})=>{m.mkdirSync(n,{recursive:!0});let c=S.join(n,"package.json");m.existsSync(c)||m.writeFileSync(c,JSON.stringify({name:"epx-migrate-gogocode",private:!0,version:"1.0.0"},null,2)+`
41
- `),Q(`npm i --no-audit --no-fund ${r.join(" ")}`,{cwd:n,stdio:"inherit"})},"install")});i.cli||($.push(`gogocode \u672A\u80FD\u5C31\u7EEA\uFF08.vue \u672A\u8F6C\u6362\uFF09\uFF1A${i.error||"\u672A\u77E5\u539F\u56E0"}\u3002\u53EF\u624B\u52A8\u88C5\u540E\u91CD\u8DD1\uFF1A
42
- cd ${o} && npm i ${Object.entries(W).map(([n,r])=>`${n}@${r}`).join(" ")}`),l(` \u2717 gogocode \u672A\u5C31\u7EEA\uFF1A${i.error||"\u672A\u77E5\u539F\u56E0"}\uFF08\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\uFF09`));try{if(!i.cli)throw new Error(i.error||"gogocode \u672A\u5C31\u7EEA");for(let g of["gogocode-plugin-vue","gogocode-plugin-element"])Q(`node "${i.cli}" -s ./src -t ${g} -o ./${U}`,{cwd:E,input:`N
43
- `,stdio:["pipe","inherit","inherit"]}),Se(F(U),F("src"),m,S),m.rmSync(F(U),{recursive:!0,force:!0}),l(` \u2713 ${g} \u5B8C\u6210`);let n=0;for(let[g,y]of s){if(!y.length)continue;let v=m.readFileSync(g,"utf8");if((v.match(X)||[]).length===y.length){let O=0,ie=v.replace(X,()=>y[O++]);ie!==v&&(m.writeFileSync(g,ie),n++)}else m.writeFileSync(g,v.replace(X,"").replace(/\s*$/,`
251
+ `}),g(` \u2713 \u7A7A SFC \u8865\u9F50\uFF1A${F.relative(w,e)}`));R("\u2462 .vue \u6279\u91CF\u8F6C\u6362\uFF08gogocode plugin-vue + plugin-element\uFF0Cstyle \u5757\u5FEB\u7167\u4FDD\u62A4\uFF09");var G=l(e=>j.filter(t=>e.test(h.readFileSync(t,"utf8"))).length,"scan"),oe=/<style[^>]*>[\s\S]*?<\/style>/g,xt={"element-ui\uFF08el-*\uFF09\u7528\u6CD5 \u2192 element-plus API \u5DEE\u5F02\uFF08el-dialog visible.sync\u2192v-model\u3001date value-format \u7B49\uFF09":G(/<el-/),'slot="x" / slot-scope\uFF08\u65E7\u63D2\u69FD\uFF09\u2192 v-slot\uFF08gogocode \u81EA\u52A8\uFF09':G(/slot="|slot-scope/),"\u81EA\u5B9A\u4E49\u7EC4\u4EF6 v-model\uFF08value/input \u2192 modelValue\uFF0Cgogocode \u81EA\u52A8\uFF0C\u8FD0\u884C\u65F6\u590D\u6838\uFF09":G(/v-model/),"$on/$off \u4E8B\u4EF6\u603B\u7EBF\uFF08Vue3 \u5B9E\u4F8B\u65E0 $on/$off\uFF1Bepx-frame \u5E73\u53F0 bus \u4ECD\u53EF\u7528\uFF0C\u8DD1\u901A\u540E\u590D\u6838\uFF09":G(/\$on\(|\$off\(/),'JSX in script\uFF08\u5DF2\u81EA\u52A8 lang="jsx"+babel \u63D2\u4EF6\uFF1BscopedSlots \u7B49 Vue2 JSX \u8BED\u4E49\u4EBA\u5DE5\u590D\u6838\uFF09':B.length,"\u8FC7\u6EE4\u5668 {{ x | f }}\uFF08Vue3 \u79FB\u9664\uFF1Bgogocode \u8F6C\u6362\u540E\u590D\u6838\uFF09":G(/\{\{[^}]*\|[^}|]+\}\}/),"$children\uFF08Vue3 \u79FB\u9664\uFF09\u2192 ref/provide-inject\uFF08\u4EBA\u5DE5\uFF09":G(/\$children/),".native \u4FEE\u9970\u7B26\uFF08Vue3 \u79FB\u9664\uFF0C\u4EBA\u5DE5\u590D\u6838\uFF09":G(/\.native/),"\u5185\u8054\u4E8B\u4EF6\u591A\u8BED\u53E5\u7F3A\u5206\u53F7\uFF08Vue2 \u5BB9\u5FCD\u6362\u884C\u5206\u9694\uFF0CVue3 \u7F16\u8BD1\u62A5 Unexpected token\u2014\u2014\u6309\u62A5\u9519\u9010\u4E2A\u8865\u5206\u53F7\uFF09":j.filter(e=>/@[\w.]+="[^"]*\n[^";]*\n/.test(h.readFileSync(e,"utf8"))).length};g(` .vue \u6587\u4EF6\uFF1A${j.length} \u4E2A\uFF08JSX\uFF1A${B.length}\uFF09`);Object.entries(xt).filter(([,e])=>e>0).forEach(([e,t])=>g(` \xB7 ${String(t).padStart(3)} \u6587\u4EF6 ${e}`));var ie=".epx-migrate-vue3-out";if(fe&&z){let t=D.filter(i=>{try{return h.statSync(i).size>204800}catch{return!1}});if(t.length){let i=t.map(p=>`${F.relative(w,p)}\uFF08${Math.round(h.statSync(p).size/1024)}KB\uFF09`).join("\u3001");g(` \u26A0 ${t.length} \u4E2A\u6E90\u7801\u6587\u4EF6\u8D85\u8FC7 200KB\uFF0Cgogocode \u4F1A\u8DF3\u8FC7\uFF1A${i}`),C.push(`\u4EE5\u4E0B\u6E90\u7801\u6587\u4EF6\u8D85\u8FC7 200KB\uFF0Cgogocode \u7684\u5927\u6587\u4EF6\u4FDD\u62A4\u4F1A\u8DF3\u8FC7\uFF08\u5176\u4F59\u6587\u4EF6\u6B63\u5E38\u8F6C\u6362\uFF09\uFF0C\u9700\u4EBA\u5DE5 Vue3 \u5316\uFF1A${i}`)}g(`
252
+ \u8DD1 gogocode\uFF08style \u5757\u5148\u5FEB\u7167\u2014\u2014gogocode \u4F1A\u628A\u6CE8\u91CA\u6389\u7684 scss \u5757\u6539\u6210\u5B64\u513F { \u6216\u6574\u5757\u5220\u6389\uFF09\u2026`);let n=new Map;for(let i of j)n.set(i,h.readFileSync(i,"utf8").match(oe)||[]);let o=F.join(he.homedir(),".epx-migrate","gogocode"),s=Ve({projectDir:F.resolve(w),toolDir:F.resolve(F.dirname(Ht(import.meta.url)),"../.."),cacheDir:o,versions:re,exists:l(i=>h.existsSync(i),"exists"),log:g,install:l(({cacheDir:i,specs:p})=>{h.mkdirSync(i,{recursive:!0});let r=F.join(i,"package.json");h.existsSync(r)||h.writeFileSync(r,JSON.stringify({name:"epx-migrate-gogocode",private:!0,version:"1.0.0"},null,2)+`
253
+ `),de(`npm i --no-audit --no-fund ${p.join(" ")}`,{cwd:i,stdio:"inherit"})},"install")});s.cli||(C.push(`gogocode \u672A\u80FD\u5C31\u7EEA\uFF08.vue \u672A\u8F6C\u6362\uFF09\uFF1A${s.error||"\u672A\u77E5\u539F\u56E0"}\u3002\u53EF\u624B\u52A8\u88C5\u540E\u91CD\u8DD1\uFF1A
254
+ cd ${o} && npm i ${Object.entries(re).map(([i,p])=>`${i}@${p}`).join(" ")}`),g(` \u2717 gogocode \u672A\u5C31\u7EEA\uFF1A${s.error||"\u672A\u77E5\u539F\u56E0"}\uFF08\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\uFF09`));try{if(!s.cli)throw new Error(s.error||"gogocode \u672A\u5C31\u7EEA");for(let c of["gogocode-plugin-vue","gogocode-plugin-element"])de(`node "${s.cli}" -s ./src -t ${c} -o ./${ie}`,{cwd:w,input:`N
255
+ `,stdio:["pipe","inherit","inherit"]}),Oe(N(ie),N("src"),h,F),h.rmSync(N(ie),{recursive:!0,force:!0}),g(` \u2713 ${c} \u5B8C\u6210`);let i=0;for(let[c,d]of n){if(!d.length)continue;let b=h.readFileSync(c,"utf8");if((b.match(oe)||[]).length===d.length){let S=0,E=b.replace(oe,()=>d[S++]);E!==b&&(h.writeFileSync(c,E),i++)}else h.writeFileSync(c,b.replace(oe,"").replace(/\s*$/,`
44
256
 
45
- `+y.join(`
257
+ `+d.join(`
46
258
 
47
259
  `)+`
48
- `)),n++}l(` \u2713 style \u5757\u6309\u5FEB\u7167\u8FD8\u539F\uFF1A${n} \u6587\u4EF6`);let r=0;for(let g of I){let y=m.readFileSync(g,"utf8");y.includes("@element-plus/icons'")&&(m.writeFileSync(g,y.split("@element-plus/icons'").join("@element-plus/icons-vue'")),r++)}r&&l(` \u2713 icons \u5305\u540D\u6539\u5199\uFF08@element-plus/icons \u2192 icons-vue\uFF09\uFF1A${r} \u6587\u4EF6`);let c=0;for(let g of V){let y=m.readFileSync(g,"utf8"),v=Me(y);v&&!/lang=/.test(v.attrs)&&Ce(v.body)&&(m.writeFileSync(g,y.replace(/<script(\s[^>]*)?>/,'<script lang="jsx"$1>')),c++)}c&&l(` \u2713 JSX script \u6807 lang="jsx"\uFF1A${c} \u6587\u4EF6`);let a=0,f=0;for(let g of V){let y=m.readFileSync(g,"utf8"),v=Ve(y);v.count&&(m.writeFileSync(g,v.src),a++,f+=v.count)}a&&l(` \u2713 \u5185\u8054\u4E8B\u4EF6\u591A\u8BED\u53E5\u8865\u5206\u53F7\uFF1A${f} \u5904 / ${a} \u6587\u4EF6`);let u=0,d=0;for(let g of V){let y=m.readFileSync(g,"utf8"),v=Ee(y);v.count&&(m.writeFileSync(g,v.src),u++,d+=v.count)}u&&l(` \u2713 .sync \u2192 v-model\uFF1A${d} \u5904 / ${u} \u6587\u4EF6`);let b=0;for(let g of V){let y=m.readFileSync(g,"utf8"),v=Oe(y);v.count&&(m.writeFileSync(g,v.src),b++)}b&&l(` \u2713 element-plus \u56FE\u6807\u7EC4\u4EF6\u56DE\u9000\u4E3A epx CSS \u56FE\u6807\uFF1A${b} \u6587\u4EF6`);let j=0;for(let g of I){let y=m.readFileSync(g,"utf8"),v=Fe(y);v.count&&(m.writeFileSync(g,v.src),j++)}j&&l(` \u2713 \u547D\u540D\u7A7A\u95F4\u5BFC\u5165\u6536\u655B\u4E3A\u5177\u540D\uFF08vue/vuex/vue-router\uFF09\uFF1A${j} \u6587\u4EF6`);let R=0,z=0,M=0;for(let g of I){let y=m.readFileSync(g,"utf8"),v=De(y);if(v.count&&(m.writeFileSync(g,v.src),R++,z+=v.count),v.warnings&&v.warnings.length){M++;let x=S.relative(E,g);for(let O of v.warnings)$.push(`${x}\uFF1A${O}`)}}R&&l(` \u2713 Vue2 JSX \u5C5E\u6027 \u2192 Vue3\uFF08domProps*/nativeOn*/scopedSlots=\uFF09\uFF1A${z} \u5904 / ${R} \u6587\u4EF6`),M&&l(` \u26A0 JSX \u533A slot="xxx" \u9700\u4EBA\u5DE5\u6539 v-slots\uFF1A${M} \u6587\u4EF6\uFF08\u5DF2\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\uFF09`)}catch(n){m.rmSync(F(U),{recursive:!0,force:!0}),i.cli&&$.push("gogocode \u8F6C\u6362\u5931\u8D25\uFF1A"+String(n.message).slice(0,160)),l(" \u2717 gogocode \u8F6C\u6362\u5931\u8D25\uFF08\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\uFF09")}}else l(`
49
- .vue \u8F6C\u6362\u672A\u6267\u884C\uFF08\u52A0 --apply --transform-vue\uFF1Bgogocode \u4F1A\u7531\u5DE5\u5177\u81EA\u52A8\u5907\u597D\uFF0C\u4E0D\u9700\u8981\u4F60\u5148\u88C5\uFF09`);_("\u2463 \u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6\u6CE8\u5165\uFF08vite.config\uFF09");{let e=["vite.config.mjs","vite.config.js","vite.config.ts"].find(s=>w(s)!==null),t=` import frameDeps from 'epx-frame/build/vite-plugin-frame-deps.mjs'
50
- \u7136\u540E\u5728\u9876\u5C42 plugins \u6570\u7EC4\u91CC\u52A0\u4E00\u9879 frameDeps()`;if(!e)l(" \xB7 \u672A\u627E\u5230 vite.config.*\uFF08webpack \u5F62\u6001\u9879\u76EE\uFF09\u2014\u2014\u8DF3\u8FC7\uFF1B\u5DF2\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\u8BF4\u660E\u5F71\u54CD"),$.push("\u672A\u627E\u5230 vite.config.*\uFF08webpack \u5F62\u6001\u9879\u76EE\uFF09\uFF1A\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6\u53EA\u6709 Vite \u5F62\u6001\u80FD\u6CE8\u5165\uFF0C\u672C\u9879\u76EE\u6682\u4E0D\u4EA7\u51FA `<bundle>.deps.json`\u3002\u5F71\u54CD\uFF1A\u5E73\u53F0\u52A0\u8F7D\u672C\u8FDC\u7A0B\u5E93\u524D\u4F1A\u9000\u5316\u4E3A\u300Censure \u5168\u90E8\u61D2\u52A0\u8F7D\u7EC4\u4EF6\u300D\u2014\u2014\u529F\u80FD\u6B63\u5E38\uFF0C\u53EA\u662F\u591A\u4E0B\u8F7D\u82E5\u5E72 chunk\u3002\u8981\u62FF\u5230\u7CBE\u786E\u52A0\u8F7D\uFF0C\u9700\u5148\u628A lib \u6784\u5EFA\u5207\u5230 Vite\uFF08\u53C2\u8003 epx create \u751F\u6210\u7684 vite.config.mjs\uFF09\u3002");else{let s=w(e),o=s.includes("vite-plugin-frame-deps"),i=/frameDeps\(\)/.test(s);if(o&&i)l(` \xB7 ${e}\uFF1A\u5DF2\u6CE8\u5165\u8FC7\uFF0C\u8DF3\u8FC7\uFF08\u5E42\u7B49\uFF09`);else if(o||i)l(` \xB7 ${e}\uFF1A\u68C0\u6D4B\u5230\u534A\u6CE8\u5165\u72B6\u6001\uFF08import / frameDeps() \u8C03\u7528\u53EA\u6709\u4E00\u5904\u5B58\u5728\uFF09\uFF0C\u672A\u81EA\u52A8\u5904\u7406`),$.push(`${e} \u68C0\u6D4B\u5230\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6\u534A\u6CE8\u5165\u72B6\u6001\uFF08import \u4E0E frameDeps() \u8C03\u7528\u53EA\u5B58\u5728\u4E00\u5904\uFF09\uFF0C\u8BF7\u4EBA\u5DE5\u786E\u8BA4\u540E\u8865\u9F50\uFF1A
51
- ${t}`);else{let n=s,r=0;if(n.startsWith("#!")){let u=n.indexOf(`
52
- `);r=u===-1?n.length:u+1}{let u=/^([ \t]*\/\/[^\n]*\r?\n|[ \t]*\r?\n)/,d;for(;d=n.slice(r).match(u);)r+=d[0].length}n=n.slice(0,r)+`import frameDeps from 'epx-frame/build/vite-plugin-frame-deps.mjs'
53
- `+n.slice(r);let a=n;if(n=n.replace(/^([ \t]{0,4})plugins\s*:\s*\[/m,(u,d)=>u+`
54
- ${d} // \u4EA7\u51FA <bundle>.deps.json\uFF1A\u5E73\u53F0\u52A0\u8F7D\u672C\u8FDC\u7A0B\u5E93\u524D\u636E\u6B64\u81EA\u52A8 ensure \u61D2\u52A0\u8F7D\u7EC4\u4EF6
55
- ${d} frameDeps(),`),!(n!==a))l(` \xB7 ${e}\uFF1A\u7ED3\u6784\u4E0D\u8BC6\u522B\uFF0C\u672A\u81EA\u52A8\u6CE8\u5165`),$.push(`${e} \u672A\u80FD\u81EA\u52A8\u6CE8\u5165\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6\uFF0C\u8BF7\u624B\u52A8\u52A0\uFF1A
56
- ${t}`);else{let u=!0,d="";if(/\.m?js$/.test(e)){let b=S.join(oe.tmpdir(),`epx-migrate-check-${Date.now()}-${Math.random().toString(36).slice(2)}.mjs`);m.writeFileSync(b,n);let j=Ne(process.execPath,["--check",b],{encoding:"utf8"});m.rmSync(b,{force:!0}),u=j.status===0,u||(d=String(j.stderr||"").split(`
57
- `).slice(0,3).join(" "))}u?(l(` \u2713 ${e}\uFF1A\u6CE8\u5165\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6`),h.push({file:e,after:n})):(l(` \xB7 ${e}\uFF1A\u81EA\u52A8\u6CE8\u5165\u540E\u8BED\u6CD5\u6821\u9A8C\u672A\u901A\u8FC7\uFF0C\u5DF2\u653E\u5F03\u6539\u52A8`),$.push(`${e} \u81EA\u52A8\u6CE8\u5165\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6\u540E node --check \u672A\u901A\u8FC7\uFF08\u5DF2\u653E\u5F03\u8BE5\u81EA\u52A8\u6539\u52A8\uFF0C\u6587\u4EF6\u4FDD\u6301\u539F\u6837\uFF09\uFF0C\u8BF7\u624B\u52A8\u52A0\uFF1A
260
+ `)),i++}g(` \u2713 style \u5757\u6309\u5FEB\u7167\u8FD8\u539F\uFF1A${i} \u6587\u4EF6`);let p=0;for(let c of D){let d=h.readFileSync(c,"utf8");d.includes("@element-plus/icons'")&&(h.writeFileSync(c,d.split("@element-plus/icons'").join("@element-plus/icons-vue'")),p++)}p&&g(` \u2713 icons \u5305\u540D\u6539\u5199\uFF08@element-plus/icons \u2192 icons-vue\uFF09\uFF1A${p} \u6587\u4EF6`);let r=0;for(let c of j){let d=h.readFileSync(c,"utf8"),b=gt(d);b&&!/lang=/.test(b.attrs)&&ut(b.body)&&(h.writeFileSync(c,d.replace(/<script(\s[^>]*)?>/,'<script lang="jsx"$1>')),r++)}r&&g(` \u2713 JSX script \u6807 lang="jsx"\uFF1A${r} \u6587\u4EF6`);let m=0,a=0;for(let c of j){let d=h.readFileSync(c,"utf8"),b=ze(d);b.count&&(h.writeFileSync(c,b.src),m++,a+=b.count)}m&&g(` \u2713 \u5185\u8054\u4E8B\u4EF6\u591A\u8BED\u53E5\u8865\u5206\u53F7\uFF1A${a} \u5904 / ${m} \u6587\u4EF6`);let u=0,y=0;for(let c of j){let d=h.readFileSync(c,"utf8"),b=He(d);b.count&&(h.writeFileSync(c,b.src),u++,y+=b.count)}u&&g(` \u2713 .sync \u2192 v-model\uFF1A${y} \u5904 / ${u} \u6587\u4EF6`);let v=0;for(let c of j){let d=h.readFileSync(c,"utf8"),b=Je(d);b.count&&(h.writeFileSync(c,b.src),v++)}v&&g(` \u2713 element-plus \u56FE\u6807\u7EC4\u4EF6\u56DE\u9000\u4E3A epx CSS \u56FE\u6807\uFF1A${v} \u6587\u4EF6`);let A=0;for(let c of D){let d=h.readFileSync(c,"utf8"),b=qe(d);b.count&&(h.writeFileSync(c,b.src),A++)}A&&g(` \u2713 \u547D\u540D\u7A7A\u95F4\u5BFC\u5165\u6536\u655B\u4E3A\u5177\u540D\uFF08vue/vuex/vue-router\uFF09\uFF1A${A} \u6587\u4EF6`);let L=0,f=0,k=0;for(let c of D){let d=h.readFileSync(c,"utf8"),b=Ye(d);if(b.count&&(h.writeFileSync(c,b.src),L++,f+=b.count),b.warnings&&b.warnings.length){k++;let x=F.relative(w,c);for(let S of b.warnings)C.push(`${x}\uFF1A${S}`)}}L&&g(` \u2713 Vue2 JSX \u5C5E\u6027 \u2192 Vue3\uFF08domProps*/nativeOn*/scopedSlots=\uFF09\uFF1A${f} \u5904 / ${L} \u6587\u4EF6`),k&&g(` \u26A0 JSX \u533A slot="xxx" \u9700\u4EBA\u5DE5\u6539 v-slots\uFF1A${k} \u6587\u4EF6\uFF08\u5DF2\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\uFF09`)}catch(i){h.rmSync(N(ie),{recursive:!0,force:!0}),s.cli&&C.push("gogocode \u8F6C\u6362\u5931\u8D25\uFF1A"+String(i.message).slice(0,160)),g(" \u2717 gogocode \u8F6C\u6362\u5931\u8D25\uFF08\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\uFF09")}}else g(`
261
+ .vue \u8F6C\u6362\u672A\u6267\u884C\uFF08\u52A0 --apply --transform-vue\uFF1Bgogocode \u4F1A\u7531\u5DE5\u5177\u81EA\u52A8\u5907\u597D\uFF0C\u4E0D\u9700\u8981\u4F60\u5148\u88C5\uFF09`);R("\u2463 \u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6\u6CE8\u5165\uFF08vite.config\uFF09");{let e=["vite.config.mjs","vite.config.js","vite.config.ts"].find(n=>$(n)!==null),t=` import frameDeps from 'epx-frame/build/vite-plugin-frame-deps.mjs'
262
+ \u7136\u540E\u5728\u9876\u5C42 plugins \u6570\u7EC4\u91CC\u52A0\u4E00\u9879 frameDeps()`;if(!e)g(" \xB7 \u672A\u627E\u5230 vite.config.*\uFF08webpack \u5F62\u6001\u9879\u76EE\uFF09\u2014\u2014\u8DF3\u8FC7\uFF1B\u5DF2\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\u8BF4\u660E\u5F71\u54CD"),C.push("\u672A\u627E\u5230 vite.config.*\uFF08webpack \u5F62\u6001\u9879\u76EE\uFF09\uFF1A\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6\u53EA\u6709 Vite \u5F62\u6001\u80FD\u6CE8\u5165\uFF0C\u672C\u9879\u76EE\u6682\u4E0D\u4EA7\u51FA `<bundle>.deps.json`\u3002\u5F71\u54CD\uFF1A\u5E73\u53F0\u52A0\u8F7D\u672C\u8FDC\u7A0B\u5E93\u524D\u4F1A\u9000\u5316\u4E3A\u300Censure \u5168\u90E8\u61D2\u52A0\u8F7D\u7EC4\u4EF6\u300D\u2014\u2014\u529F\u80FD\u6B63\u5E38\uFF0C\u53EA\u662F\u591A\u4E0B\u8F7D\u82E5\u5E72 chunk\u3002\u8981\u62FF\u5230\u7CBE\u786E\u52A0\u8F7D\uFF0C\u9700\u5148\u628A lib \u6784\u5EFA\u5207\u5230 Vite\uFF08\u53C2\u8003 epx create \u751F\u6210\u7684 vite.config.mjs\uFF09\u3002");else{let n=$(e),o=n.includes("vite-plugin-frame-deps"),s=/frameDeps\(\)/.test(n);if(o&&s)g(` \xB7 ${e}\uFF1A\u5DF2\u6CE8\u5165\u8FC7\uFF0C\u8DF3\u8FC7\uFF08\u5E42\u7B49\uFF09`);else if(o||s)g(` \xB7 ${e}\uFF1A\u68C0\u6D4B\u5230\u534A\u6CE8\u5165\u72B6\u6001\uFF08import / frameDeps() \u8C03\u7528\u53EA\u6709\u4E00\u5904\u5B58\u5728\uFF09\uFF0C\u672A\u81EA\u52A8\u5904\u7406`),C.push(`${e} \u68C0\u6D4B\u5230\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6\u534A\u6CE8\u5165\u72B6\u6001\uFF08import \u4E0E frameDeps() \u8C03\u7528\u53EA\u5B58\u5728\u4E00\u5904\uFF09\uFF0C\u8BF7\u4EBA\u5DE5\u786E\u8BA4\u540E\u8865\u9F50\uFF1A
263
+ ${t}`);else{let i=n,p=0;if(i.startsWith("#!")){let u=i.indexOf(`
264
+ `);p=u===-1?i.length:u+1}{let u=/^([ \t]*\/\/[^\n]*\r?\n|[ \t]*\r?\n)/,y;for(;y=i.slice(p).match(u);)p+=y[0].length}i=i.slice(0,p)+`import frameDeps from 'epx-frame/build/vite-plugin-frame-deps.mjs'
265
+ `+i.slice(p);let m=i;if(i=i.replace(/^([ \t]{0,4})plugins\s*:\s*\[/m,(u,y)=>u+`
266
+ ${y} // \u4EA7\u51FA <bundle>.deps.json\uFF1A\u5E73\u53F0\u52A0\u8F7D\u672C\u8FDC\u7A0B\u5E93\u524D\u636E\u6B64\u81EA\u52A8 ensure \u61D2\u52A0\u8F7D\u7EC4\u4EF6
267
+ ${y} frameDeps(),`),!(i!==m))g(` \xB7 ${e}\uFF1A\u7ED3\u6784\u4E0D\u8BC6\u522B\uFF0C\u672A\u81EA\u52A8\u6CE8\u5165`),C.push(`${e} \u672A\u80FD\u81EA\u52A8\u6CE8\u5165\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6\uFF0C\u8BF7\u624B\u52A8\u52A0\uFF1A
268
+ ${t}`);else{let u=!0,y="";if(/\.m?js$/.test(e)){let v=F.join(he.tmpdir(),`epx-migrate-check-${Date.now()}-${Math.random().toString(36).slice(2)}.mjs`);h.writeFileSync(v,i);let A=rt(process.execPath,["--check",v],{encoding:"utf8"});h.rmSync(v,{force:!0}),u=A.status===0,u||(y=String(A.stderr||"").split(`
269
+ `).slice(0,3).join(" "))}u?(g(` \u2713 ${e}\uFF1A\u6CE8\u5165\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6`),P.push({file:e,after:i})):(g(` \xB7 ${e}\uFF1A\u81EA\u52A8\u6CE8\u5165\u540E\u8BED\u6CD5\u6821\u9A8C\u672A\u901A\u8FC7\uFF0C\u5DF2\u653E\u5F03\u6539\u52A8`),C.push(`${e} \u81EA\u52A8\u6CE8\u5165\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6\u540E node --check \u672A\u901A\u8FC7\uFF08\u5DF2\u653E\u5F03\u8BE5\u81EA\u52A8\u6539\u52A8\uFF0C\u6587\u4EF6\u4FDD\u6301\u539F\u6837\uFF09\uFF0C\u8BF7\u624B\u52A8\u52A0\uFF1A
58
270
  ${t}
59
- \uFF08\u6821\u9A8C\u62A5\u9519\uFF1A${d}\uFF09`))}}}}_("\u2464 \u6309\u9700\u6253\u5305\u5F62\u6001\u6CE8\u5165\uFF08lazyLib\uFF09");{let e=["vite.config.mjs","vite.config.js","vite.config.ts"].find(s=>w(s)!==null),t=` import lazyLib from 'epx-frame/build/vite-plugin-lazy-lib.mjs'
271
+ \uFF08\u6821\u9A8C\u62A5\u9519\uFF1A${y}\uFF09`))}}}}R("\u2464 \u6309\u9700\u6253\u5305\u5F62\u6001\u6CE8\u5165\uFF08lazyLib\uFF09");{let e=["vite.config.mjs","vite.config.js","vite.config.ts"].find(n=>$(n)!==null),t=` import lazyLib from 'epx-frame/build/vite-plugin-lazy-lib.mjs'
60
272
  \u7136\u540E\u5728 plugins \u6570\u7EC4\u91CC frameDeps() \u4E4B\u540E\u52A0\uFF1A
61
273
  lazyLib({ enabled: process.env.LAZY_LIB === 'true', glob: '<\u4E0E\u5165\u53E3 import.meta.glob \u9010\u5B57\u76F8\u540C\u7684\u6A21\u5F0F>', pkgName: '<\u5305\u540D>' })
62
- \u5E76\u5728 package.json \u52A0 "build:lib:lazy": "cross-env LAZY_LIB=true vite build" \u4E0E cross-env devDep`;if(!e)l(" \xB7 \u672A\u627E\u5230 vite.config.*\uFF08webpack \u5F62\u6001\u9879\u76EE\uFF09\u2014\u2014\u8DF3\u8FC7\uFF08\u5F71\u54CD\u89C1 \u2463 \u7684\u4EBA\u5DE5\u6E05\u5355\u6761\u76EE\uFF09");else if(!k)l(" \xB7 \u672A\u627E\u5230\u8FDC\u7A0B\u5E93\u5165\u53E3\uFF08src/index.js / index.js\uFF09\u2014\u2014\u8DF3\u8FC7"),$.push(`\u672A\u627E\u5230\u8FDC\u7A0B\u5E93\u5165\u53E3\uFF0C\u65E0\u6CD5\u786E\u5B9A lazyLib \u7684 glob \u6A21\u5F0F\uFF0C\u6309\u9700\u6253\u5305\u5F62\u6001\u672A\u6CE8\u5165\u3002\u8981\u7528\u8BF7\u624B\u52A8\u52A0\uFF1A
63
- ${t}`);else{let s=de(w(k)),o=(()=>{try{return JSON.parse(w("package.json")||"{}").name||""}catch{return""}})();if(!s)l(` \xB7 ${k}\uFF1A\u6CA1\u6709 import.meta.glob(..., { eager: true }) \u2014\u2014 \u8DF3\u8FC7\uFF08webpack \u5F62\u6001\u5165\u53E3\u7528\u7684\u662F require.context\uFF09`),$.push(`${k} \u91CC\u6CA1\u6709 \`import.meta.glob(..., { eager: true })\`\uFF08webpack \u5F62\u6001\u7528\u7684\u662F require.context\uFF09\uFF0C\u65E0\u6CD5\u786E\u5B9A lazyLib \u7684 glob \u6A21\u5F0F\uFF0C\u6309\u9700\u6253\u5305\u5F62\u6001\u672A\u6CE8\u5165\u3002\u628A\u5165\u53E3\u6362\u6210 import.meta.glob \u540E\u53EF\u624B\u52A8\u52A0\uFF1A
64
- `+t);else if(!o)l(" \xB7 package.json \u6CA1\u6709 name \u2014\u2014 \u8DF3\u8FC7\uFF08lazyLib \u7684 pkgName \u51B3\u5B9A\u5E73\u53F0\u6309\u4EC0\u4E48\u540D\u5B57\u627E\u515C\u5E95\u4EA7\u7269\uFF09"),$.push(`package.json \u7F3A\u5C11 name\uFF0C\u65E0\u6CD5\u786E\u5B9A lazyLib \u7684 pkgName\uFF0C\u6309\u9700\u6253\u5305\u5F62\u6001\u672A\u6CE8\u5165\u3002
65
- `+t);else{let i=[...h].reverse().find(c=>c.file===e),n=i?i.after:w(e),r=ge(n,{glob:s,pkgName:o});if(r.status==="present")l(` \xB7 ${e}\uFF1A\u5DF2\u6CE8\u5165\u8FC7\uFF0C\u8DF3\u8FC7\uFF08\u5E42\u7B49\uFF09`);else if(r.status==="half")l(` \xB7 ${e}\uFF1A\u68C0\u6D4B\u5230\u534A\u6CE8\u5165\u72B6\u6001\uFF08import \u4E0E lazyLib() \u8C03\u7528\u53EA\u6709\u4E00\u5904\u5B58\u5728\uFF09\uFF0C\u672A\u81EA\u52A8\u5904\u7406`),$.push(`${e} \u68C0\u6D4B\u5230\u6309\u9700\u6253\u5305\u63D2\u4EF6\u534A\u6CE8\u5165\u72B6\u6001\uFF08import \u4E0E lazyLib() \u8C03\u7528\u53EA\u5B58\u5728\u4E00\u5904\uFF09\uFF0C\u8BF7\u4EBA\u5DE5\u786E\u8BA4\u540E\u8865\u9F50\uFF1A
66
- ${t}`);else if(r.status==="no-anchor")l(` \xB7 ${e}\uFF1A\u627E\u4E0D\u5230 frameDeps() \u951A\u70B9\uFF0C\u672A\u81EA\u52A8\u6CE8\u5165\uFF08\u4F4D\u7F6E\u53EA\u80FD\u731C\uFF0C\u8F6C\u4EBA\u5DE5\uFF09`),$.push(`${e} \u91CC\u6CA1\u6709 frameDeps() \u8C03\u7528\uFF0C\u6309\u9700\u6253\u5305\u63D2\u4EF6\u7684\u6CE8\u5165\u4F4D\u7F6E\u65E0\u6CD5\u786E\u5B9A\uFF08\u4E0D\u731C\u4F4D\u7F6E\uFF09\uFF0C\u8BF7\u624B\u52A8\u52A0\uFF1A
67
- ${t}`);else{let c=!0,a="";if(/\.m?js$/.test(e)){let f=S.join(oe.tmpdir(),`epx-migrate-lazy-check-${Date.now()}-${Math.random().toString(36).slice(2)}.mjs`);m.writeFileSync(f,r.src);let u=Ne(process.execPath,["--check",f],{encoding:"utf8"});m.rmSync(f,{force:!0}),c=u.status===0,c||(a=String(u.stderr||"").split(`
68
- `).slice(0,3).join(" "))}if(!c)l(` \xB7 ${e}\uFF1A\u6CE8\u5165\u540E\u8BED\u6CD5\u6821\u9A8C\u672A\u901A\u8FC7\uFF0C\u5DF2\u653E\u5F03\u6539\u52A8`),$.push(`${e} \u6CE8\u5165\u6309\u9700\u6253\u5305\u63D2\u4EF6\u540E node --check \u672A\u901A\u8FC7\uFF08\u5DF2\u653E\u5F03\u8BE5\u81EA\u52A8\u6539\u52A8\uFF0C\u6587\u4EF6\u4FDD\u6301\u539F\u6837\uFF09\uFF0C\u8BF7\u624B\u52A8\u52A0\uFF1A
274
+ \u5E76\u5728 package.json \u52A0 "build:lib:lazy": "cross-env LAZY_LIB=true vite build" \u4E0E cross-env devDep`;if(!e)g(" \xB7 \u672A\u627E\u5230 vite.config.*\uFF08webpack \u5F62\u6001\u9879\u76EE\uFF09\u2014\u2014\u8DF3\u8FC7\uFF08\u5F71\u54CD\u89C1 \u2463 \u7684\u4EBA\u5DE5\u6E05\u5355\u6761\u76EE\uFF09");else if(!T)g(" \xB7 \u672A\u627E\u5230\u8FDC\u7A0B\u5E93\u5165\u53E3\uFF08src/index.js / index.js\uFF09\u2014\u2014\u8DF3\u8FC7"),C.push(`\u672A\u627E\u5230\u8FDC\u7A0B\u5E93\u5165\u53E3\uFF0C\u65E0\u6CD5\u786E\u5B9A lazyLib \u7684 glob \u6A21\u5F0F\uFF0C\u6309\u9700\u6253\u5305\u5F62\u6001\u672A\u6CE8\u5165\u3002\u8981\u7528\u8BF7\u624B\u52A8\u52A0\uFF1A
275
+ ${t}`);else{let n=we($(T)),o=(()=>{try{return JSON.parse($("package.json")||"{}").name||""}catch{return""}})();if(!n)g(` \xB7 ${T}\uFF1A\u6CA1\u6709 import.meta.glob(..., { eager: true }) \u2014\u2014 \u8DF3\u8FC7\uFF08webpack \u5F62\u6001\u5165\u53E3\u7528\u7684\u662F require.context\uFF09`),C.push(`${T} \u91CC\u6CA1\u6709 \`import.meta.glob(..., { eager: true })\`\uFF08webpack \u5F62\u6001\u7528\u7684\u662F require.context\uFF09\uFF0C\u65E0\u6CD5\u786E\u5B9A lazyLib \u7684 glob \u6A21\u5F0F\uFF0C\u6309\u9700\u6253\u5305\u5F62\u6001\u672A\u6CE8\u5165\u3002\u628A\u5165\u53E3\u6362\u6210 import.meta.glob \u540E\u53EF\u624B\u52A8\u52A0\uFF1A
276
+ `+t);else if(!o)g(" \xB7 package.json \u6CA1\u6709 name \u2014\u2014 \u8DF3\u8FC7\uFF08lazyLib \u7684 pkgName \u51B3\u5B9A\u5E73\u53F0\u6309\u4EC0\u4E48\u540D\u5B57\u627E\u515C\u5E95\u4EA7\u7269\uFF09"),C.push(`package.json \u7F3A\u5C11 name\uFF0C\u65E0\u6CD5\u786E\u5B9A lazyLib \u7684 pkgName\uFF0C\u6309\u9700\u6253\u5305\u5F62\u6001\u672A\u6CE8\u5165\u3002
277
+ `+t);else{let s=[...P].reverse().find(r=>r.file===e),i=s?s.after:$(e),p=Me(i,{glob:n,pkgName:o});if(p.status==="present")g(` \xB7 ${e}\uFF1A\u5DF2\u6CE8\u5165\u8FC7\uFF0C\u8DF3\u8FC7\uFF08\u5E42\u7B49\uFF09`);else if(p.status==="half")g(` \xB7 ${e}\uFF1A\u68C0\u6D4B\u5230\u534A\u6CE8\u5165\u72B6\u6001\uFF08import \u4E0E lazyLib() \u8C03\u7528\u53EA\u6709\u4E00\u5904\u5B58\u5728\uFF09\uFF0C\u672A\u81EA\u52A8\u5904\u7406`),C.push(`${e} \u68C0\u6D4B\u5230\u6309\u9700\u6253\u5305\u63D2\u4EF6\u534A\u6CE8\u5165\u72B6\u6001\uFF08import \u4E0E lazyLib() \u8C03\u7528\u53EA\u5B58\u5728\u4E00\u5904\uFF09\uFF0C\u8BF7\u4EBA\u5DE5\u786E\u8BA4\u540E\u8865\u9F50\uFF1A
278
+ ${t}`);else if(p.status==="no-anchor")g(` \xB7 ${e}\uFF1A\u627E\u4E0D\u5230 frameDeps() \u951A\u70B9\uFF0C\u672A\u81EA\u52A8\u6CE8\u5165\uFF08\u4F4D\u7F6E\u53EA\u80FD\u731C\uFF0C\u8F6C\u4EBA\u5DE5\uFF09`),C.push(`${e} \u91CC\u6CA1\u6709 frameDeps() \u8C03\u7528\uFF0C\u6309\u9700\u6253\u5305\u63D2\u4EF6\u7684\u6CE8\u5165\u4F4D\u7F6E\u65E0\u6CD5\u786E\u5B9A\uFF08\u4E0D\u731C\u4F4D\u7F6E\uFF09\uFF0C\u8BF7\u624B\u52A8\u52A0\uFF1A
279
+ ${t}`);else{let r=!0,m="";if(/\.m?js$/.test(e)){let a=F.join(he.tmpdir(),`epx-migrate-lazy-check-${Date.now()}-${Math.random().toString(36).slice(2)}.mjs`);h.writeFileSync(a,p.src);let u=rt(process.execPath,["--check",a],{encoding:"utf8"});h.rmSync(a,{force:!0}),r=u.status===0,r||(m=String(u.stderr||"").split(`
280
+ `).slice(0,3).join(" "))}if(!r)g(` \xB7 ${e}\uFF1A\u6CE8\u5165\u540E\u8BED\u6CD5\u6821\u9A8C\u672A\u901A\u8FC7\uFF0C\u5DF2\u653E\u5F03\u6539\u52A8`),C.push(`${e} \u6CE8\u5165\u6309\u9700\u6253\u5305\u63D2\u4EF6\u540E node --check \u672A\u901A\u8FC7\uFF08\u5DF2\u653E\u5F03\u8BE5\u81EA\u52A8\u6539\u52A8\uFF0C\u6587\u4EF6\u4FDD\u6301\u539F\u6837\uFF09\uFF0C\u8BF7\u624B\u52A8\u52A0\uFF1A
69
281
  ${t}
70
- \uFF08\u6821\u9A8C\u62A5\u9519\uFF1A${a}\uFF09`);else{l(` \u2713 ${e}\uFF1A\u6CE8\u5165\u6309\u9700\u6253\u5305\u63D2\u4EF6\uFF08\u9ED8\u8BA4\u5173\uFF0Cglob='${s}'\uFF09`),i?i.after=r.src:h.push({file:e,after:r.src});let f=[...h].reverse().find(d=>d.file==="package.json"),u=null;try{u=JSON.parse(f?f.after:w("package.json")||"{}")}catch{u=null}if(!u)$.push("package.json \u89E3\u6790\u5931\u8D25\uFF0C\u672A\u80FD\u8865 build:lib:lazy \u811A\u672C\u4E0E cross-env\uFF0C\u8BF7\u624B\u52A8\u52A0\u3002");else{let{pkg:d,changed:b}=ve(u);if(b){let j=JSON.stringify(d,null,2)+`
71
- `;f?f.after=j:h.push({file:"package.json",after:j}),l(" \u2713 package.json\uFF1A\u52A0 build:lib:lazy \u811A\u672C\u4E0E cross-env")}else l(" \xB7 package.json\uFF1Abuild:lib:lazy \u4E0E cross-env \u5DF2\u5728\uFF0C\u8DF3\u8FC7")}}}}}}_("\u2465 \u7B2C\u4E09\u65B9\u8FD0\u884C\u65F6\u4F9D\u8D56 Vue3 \u517C\u5BB9\u6027\u626B\u63CF");var J=[];{let e={};try{e=JSON.parse(w("package.json")||"{}").dependencies||{}}catch{e={}}let t=Object.keys(e).filter(s=>re.has(s));for(let s of t){if(q[s])continue;if(B[s]){J.push({name:s,kind:"known",detail:B[s].note}),l(` \u2717 ${s}\uFF1A\u5DF2\u77E5 Vue2-only \u2014\u2014 ${B[s].note}`);continue}let o=null;try{o=JSON.parse(m.readFileSync(F(`node_modules/${s}/package.json`),"utf8"))}catch{o=null}if(!o)continue;let i=o.peerDependencies&&o.peerDependencies.vue||o.dependencies&&o.dependencies.vue||"";i&&vt(i)&&(J.push({name:s,kind:"suspect",detail:`\u5176 package.json \u58F0\u660E vue \u652F\u6301 "${i}"\uFF08\u53EA\u5339\u914D Vue2\uFF09`}),l(` \xB7 ${s}\uFF1A\u7591\u4F3C Vue2-only\uFF08vue="${i}"\uFF09`))}J.length||l(" \xB7 \u672A\u53D1\u73B0\u9762\u5411 Vue2 \u7684\u7B2C\u4E09\u65B9\u8FD0\u884C\u65F6\u5E93\uFF08\u4F9D\u8D56\u672A\u5B89\u88C5\u65F6\u7ED3\u679C\u4E0D\u5B8C\u6574\uFF0Cnpm i \u540E\u91CD\u8DD1\u66F4\u51C6\uFF09")}{let e=p(s=>/<template[\s>]/.test(s.replace(/<script[\s\S]*?<\/script>/gi,"").replace(/<style[\s\S]*?<\/style>/gi,"")),"hasSfcTemplate"),t=V.filter(s=>{let o=m.readFileSync(s,"utf8");return!e(o)&&/<style[^>]*\bscoped/.test(o)});if(t.length){_("\u2466 JSX \u7EC4\u4EF6 scoped \u6837\u5F0F\u5339\u914D\u590D\u6838"),l(` \u26A0 ${t.length} \u4E2A\u300C\u65E0 <template> + <style scoped>\u300D\u7EC4\u4EF6\u5F85\u590D\u6838\uFF1B\u7ED3\u6784\u547D\u4E2D\u4E0D\u8BC1\u660E\u6837\u5F0F\u5931\u6548\uFF0C\u5148\u4FDD\u7559 scoped \u5E76\u9A8C\u8BC1\u6700\u7EC8\u4EA7\u7269\uFF08\u89C1 pitfalls F15\uFF09`);for(let s of t){let i=(m.readFileSync(s,"utf8").match(/::v-deep|:deep\(|\/deep\/|>>>/g)||[]).length;l(` \xB7 ${S.relative(E,s).replace(/\\/g,"/")}${i?`\uFF08\u542B ${i} \u5904\u6DF1\u5C42\u9009\u62E9\u5668\uFF0C\u6838\u5BF9\u5176\u4F5C\u7528\u8303\u56F4\u4E0E\u6700\u7EC8 CSS\uFF09`:""}`)}$.push(`\u3010\u6837\u5F0F\xB7\u5F85\u8FD0\u884C\u65F6\u590D\u6838\u3011${t.length} \u4E2A JSX/render \u7EC4\u4EF6\uFF08\u65E0 <template>\uFF09\u4F7F\u7528\u4E86 <style scoped>\uFF1B\u8FD9\u4E0D\u8BC1\u660E\u6837\u5F0F\u5931\u6548\uFF0C\u9ED8\u8BA4\u4FDD\u7559 scoped\u3002\u7528\u6700\u7EC8\u4EA7\u7269\u9010\u4E2A\u6838\u5BF9\u5F02\u5E38\u5143\u7D20\u7684 DOM\u3001CSS \u9009\u62E9\u5668\u4E0E\u8BA1\u7B97\u6837\u5F0F\uFF0C\u4EC5\u4FEE\u590D\u5DF2\u8BC1\u5B9E\u7684\u95EE\u9898\u3002\u82E5\u786E\u9700\u53BB scoped\uFF0C\u5FC5\u987B\u540C\u65F6\u5B8C\u6210\u5168\u90E8\u89C4\u5219\u7684\u552F\u4E00\u547D\u540D\u7A7A\u95F4\u9694\u79BB\uFF0C\u5E76\u9A8C\u8BC1\u7EC4\u4EF6\u5916\u540C\u540D\u5143\u7D20\u53CA\u8DE8\u9875\u9762\u6837\u5F0F\u4E0D\u53D7\u5F71\u54CD\uFF1B\u672A\u9A8C\u8BC1\u9879\u4E0D\u5F97\u8BA1\u4E3A\u901A\u8FC7\uFF08\u89C1 pitfalls F15\uFF09\uFF1A${t.map(s=>S.relative(E,s).replace(/\\/g,"/")).join("\u3001")}`)}}var N=null;if(gt){_("V. webpack \u2192 Vite \u5F62\u6001\u8F6C\u6362");let e=[...h].reverse().find(r=>r.file==="package.json"&&!r.remove),t=[...h].reverse().find(r=>r.file===k&&!r.remove),o=$e({projectDir:E,read:p(r=>r===k&&t?t.after:w(r),"readForVite"),epxFrameSpec:ee,basePkgRaw:e?e.after:null});N=o.info;for(let r of o.changes){if(r.file==="package.json"&&!r.remove&&e){e.after=r.after,l(" \u2713 package.json\uFF08\u5E76\u5165 \u2460 \u4F9D\u8D56\u8FC1\u79FB\u4EA7\u51FA\uFF09");continue}h.push(r),l(` ${r.remove?"\u2717 \u5220":"\u2713"} ${r.file}`)}for(let r of o.manual)$.push(r);N.removedDeps&&N.removedDeps.length&&l(` \xB7 \u6458\u9664 webpack \u6784\u5EFA\u4F9D\u8D56 ${N.removedDeps.length} \u4E2A\uFF1A${N.removedDeps.join(", ")}`),l(` \xB7 \u7EC4\u4EF6\u76EE\u5F55 dirName='${N.dirName}'\uFF0ClazyLib glob='${N.glob}'`);let i=0,n=0;for(let r of I){let c=S.relative(E,r).replace(/\\/g,"/"),a=[...h].reverse().find(d=>d.file===c&&!d.remove),f=a?a.after:m.readFileSync(r,"utf8"),u=Ae(f,{isVue:r.endsWith(".vue")});u.src!==f&&(a?a.after=u.src:h.push({file:c,after:u.src}),i+=u.count,n++),u.templateAsset&&$.push(`${c}\uFF1A\u6A21\u677F\u91CC\u6709 require('\u56FE\u7247')\uFF0C\u6539\u6210\u6A21\u5757\u9876\u5C42 import \u53D8\u91CF\u540E Options API \u7684 this \u53D6\u4E0D\u5230\uFF0C\u9700\u624B\u5DE5\u6362 :src \u7ED1\u5B9A data/computed \u6216 new URL(..., import.meta.url)\u3002`)}i&&l(` \u2713 \u6E90\u7801 require.context\u2192import.meta.glob / require(\u56FE\u7247)\u2192\u9759\u6001 import\uFF1A${i} \u5904 / ${n} \u6587\u4EF6`)}_("\u8FD0\u884C\u65F6\u6807\u8BC6\uFF08runtime: vue3\uFF09");if(k){let e=[...h].reverse().find(o=>o.file===k&&!o.remove),t=e?e.after:w(k),s=Pe(t);s.marked?(s.src!==t&&(e?e.after=s.src:h.push({file:k,after:s.src})),l(` \u2713 ${k}\uFF1A\u9ED8\u8BA4\u5BFC\u51FA\u5305\u542B runtime: 'vue3'`)):($.push(`${k} \u672A\u80FD\u81EA\u52A8\u6DFB\u52A0 runtime \u6807\u8BC6\uFF1A${s.reason}\u3002\u8BF7\u8BA9\u9ED8\u8BA4\u5BFC\u51FA\u7684\u5E93\u5BF9\u8C61\u5305\u542B runtime: 'vue3'\uFF1B\u672A\u6807\u8BC6\u65F6\u5E73\u53F0\u4FDD\u7559\u65E7\u7248\u517C\u5BB9\u3002`),l(` \xB7 ${k}\uFF1A\u6807\u8BC6\u672A\u6CE8\u5165\uFF0C\u5DF2\u8BB0\u5F55\u4EBA\u5DE5\u6E05\u5355`))}else $.push("\u672A\u627E\u5230\u8FDC\u7A0B\u5E93\u5165\u53E3\uFF1B\u8BF7\u8BA9\u5E93\u9ED8\u8BA4\u5BFC\u51FA\u5305\u542B runtime: 'vue3'\u3002package.json \u6807\u8BC6\u4E0D\u4F1A\u5355\u72EC\u4F20\u5230\u6D4F\u89C8\u5668\u3002");_("\u65E5\u671F\u63A7\u4EF6\u683C\u5F0F\uFF08Element UI \u2192 Element Plus\uFF09");var se=[];for(let e of I){let t=S.relative(E,e),s=h.find(i=>i.file===t&&!i.remove),o=ce(s?s.after:m.readFileSync(e,"utf8"),{filename:e});if(o.count){s?s.after=o.src:h.push({file:t,after:o.src});for(let i of o.fixes)se.push(`${t}:${i.line}\uFF1A${i.before} \u2192 ${i.after}`);l(` \u2713 ${t}\uFF1A${o.count} \u5904\u65E5\u671F\u683C\u5F0F\u4FEE\u590D`)}for(let i of o.warnings)$.push(`${t}\uFF1A${i}\uFF08F21\uFF1B\u5B8C\u6210\u683C\u5F0F\u6765\u6E90\u4FEE\u590D\u540E\u518D\u9A8C\u6536\uFF09`)}_("\u4EA7\u54C1\u4E3B\u9898\u9002\u914D\uFF08\u6D88\u8D39\u5E73\u53F0\u53D8\u91CF\uFF0C\u4FDD\u7559 scoped\uFF09");var ne=[];for(let e of[...I,...Te]){let t=S.relative(E,e),s=[...h].reverse().find(i=>i.file===t&&!i.remove),o=le(s?s.after:m.readFileSync(e,"utf8"),{filename:e});if(o.count){s?s.after=o.src:h.push({file:t,after:o.src});for(let i of o.fixes)ne.push(`${t}:${i.line}\uFF1A${i.before} \u2192 ${i.after}`);l(` \u2713 ${t}\uFF1A${o.count} \u5904\u4E3B\u9898\u53D8\u91CF\u9002\u914D`)}for(let i of o.warnings)$.push(`${t}\uFF1A${i}\uFF08E2\uFF1B\u8FFD\u8E2A\u5B9E\u9645\u6D88\u8D39\u573A\u666F\u540E\u5B8C\u6210\u4E3B\u9898\u9002\u914D\uFF09`)}var bt=["# epx-migrate \u8FC1\u79FB\u62A5\u544A","",`\u9879\u76EE\uFF1A\`${S.resolve(E)}\``,`\u6A21\u5F0F\uFF1A${T?"--apply \u5DF2\u843D\u76D8":"dry-run \u672A\u843D\u76D8"}${te?" + gogocode \u8F6C\u6362":""}`,"","## \u540E\u7EED\u64CD\u4F5C\u987A\u5E8F","","```bash",'git add -A && git commit -m "epx-migrate: \u4F9D\u8D56+codemod" # \u5B58\u6863\u5DE5\u5177\u6539\u52A8','npm i && git add -A && git commit -m "lockfile" # \u88C5\u65B0\u4F9D\u8D56\u5E76\u63D0\u4EA4\uFF08lock \u88AB\u8DDF\u8E2A\u65F6 --transform-vue \u7684\u5E72\u51C0\u68C0\u67E5\u9700\u8981\uFF09',...te?[]:["node <\u672C\u5DE5\u5177> . --apply --transform-vue # \u8DD1 gogocode \u8F6C\u6362 .vue\uFF08gogocode \u81EA\u52A8\u5907\u597D\uFF0C\u542B style \u5FEB\u7167\u4FDD\u62A4\uFF09"],"npm run build:lib # \u6784\u5EFA Vue3 \u7248\u8FDC\u7A0B lib/index.js","```","","\u6784\u5EFA\u62A5\u9519\u65F6\u6309\u6587\u4EF6\u9010\u4E2A\u5904\u7406\uFF08\u6700\u5E38\u89C1\uFF1A\u5185\u8054\u4E8B\u4EF6\u591A\u8BED\u53E5\u7F3A\u5206\u53F7\u2014\u2014\u6309\u62A5\u9519\u884C\u8865 `;`\uFF09\u3002","",'\u8FD0\u884C\u65F6\u6807\u8BC6\uFF1A\u672C\u547D\u4EE4\u81EA\u52A8\u5199\u5165 package.json \u7684 `runtime: "vue3"`\uFF0C\u5E76\u7ED9\u5E93\u9ED8\u8BA4\u5BFC\u51FA\u8865\u540C\u540D\u6807\u8BC6\u3002\u6784\u5EFA\u90E8\u7F72\u540E\u8BE5\u5305\u8D70 Vue3 \u539F\u751F\u5B89\u88C5\uFF1B`vue2` \u6216\u6CA1\u6709\u6807\u8BC6\u7684\u5176\u5B83\u4EA7\u54C1/\u9879\u76EE\u5305\u7EE7\u7EED\u4F7F\u7528\u57AB\u7247\u3002\u6807\u8BC6\u8868\u793A\u8FC1\u79FB\u76EE\u6807\uFF0C\u4E0D\u4EE3\u8868\u6784\u5EFA\u6216\u4E1A\u52A1\u9A8C\u6536\u5DF2\u901A\u8FC7\uFF1B\u5B8C\u6210\u4E0B\u9762\u7684\u8F6C\u6362\u3001\u6784\u5EFA\u548C\u590D\u6D4B\u540E\u518D\u53D1\u5E03\u3002',"","\u5E93\u8D85\u8FC7 ~1MB \u65F6\u53EF\u4EE5\u518D\u8BD5\u6309\u9700\u6253\u5305\u5F62\u6001\uFF08\u9ED8\u8BA4\u5173\uFF0C\u4E0D\u5F71\u54CD\u4E0A\u9762\u8FD9\u6761\uFF09\uFF1A","","```bash","npm run build:lib:lazy # \u51FA index.js(\u5165\u53E3\u58F3) + chunks/ + index.full.js(\u515C\u5E95)","```","","\u26A0\uFE0F \u6309\u9700\u5F62\u6001**\u5FC5\u987B\u4E0A\u4F20\u6574\u4E2A `lib/` \u76EE\u5F55**\uFF08\u4E0D\u518D\u662F index.js + index.css \u4E24\u4E2A\u6587\u4EF6\uFF09\uFF1BFM_SYSTEM_WEBPACK \u91CC\u4ECD\u53EA\u914D index.js \u4E0E index.css \u4E24\u6761 url\u3002\u5207\u6362\u524D\u7684\u7EA6\u675F\u4E0E\u7EBF\u4E0A\u6392\u67E5\u624B\u6BB5\u89C1 epx-frame \u7684 `docs/PROJECT-GUIDE.md` \xA7\u4E09\u300C\u4E24\u79CD\u6253\u5305\u65B9\u5F0F\u300D\u3002","","## \u2460 \u4F9D\u8D56\u8FC1\u79FB\uFF08\u5DF2\u81EA\u52A8\uFF09","- \u8FC1\u79FB\u8868\u52A0/\u5220/\u6539 + lib \u6784\u5EFA\u95ED\u5305\uFF08webpack5/vue-loader17\uFF09+ gogocode \u5DE5\u5177 + JSX/icons \u4F9D\u8D56 + \u9690\u5F0F\u4F9D\u8D56\u8865\u58F0\u660E","","### webpack.config.js \u4EBA\u5DE5\u6838\u5BF9",...fe.map(e=>`- ${e}`),"","## \u2461 codemod\uFF08\u5DF2\u81EA\u52A8\uFF09","- main.js\uFF1A`Vue.use`\u2192`app.use`\u3001`$mount`\u2192`mount`\u3001`frame.createApp()`","- index.js\uFF1A`install(Vue)`\u2192`install(app)`\u3001`Vue.component`\u2192`app.component`","- babel.config.js\uFF1A\u5220 element-ui/vant \u6309\u9700\u63D2\u4EF6 + cli preset\uFF1BJSX \u9879\u76EE\u52A0 @vue/babel-plugin-jsx","- webpack.config.js\uFF1Aexternals \u52A0 `{ vue: window.frame.Vue }`\uFF1BJSX \u9879\u76EE babel \u89C4\u5219\u6536 .jsx","- \u7A7A .vue \u8865\u6700\u5C0F\u5408\u6CD5\u5185\u5BB9","","### \u65E5\u671F\u63A7\u4EF6\u683C\u5F0F\u81EA\u52A8\u4FEE\u590D\uFF08F21\uFF1B\u4E0D\u4F9D\u8D56 gogocode\uFF09",...se.length?se.map(e=>`- ${e}`):["- \u672A\u53D1\u73B0\u53EF\u9759\u6001\u4FEE\u590D\u7684\u65E7\u683C\u5F0F\uFF1B\u52A8\u6001\u6765\u6E90\u89C1\u4EBA\u5DE5\u6E05\u5355\uFF0C\u4E0D\u4EE3\u8868\u6240\u6709\u65E5\u671F\u903B\u8F91\u5DF2\u901A\u8FC7\u3002"],"- \u53EA\u4FEE\u6539\u65E5\u671F/\u65F6\u95F4\u63A7\u4EF6 format \u4E0E value-format/valueFormat\uFF1B\u4FDD\u7559\u5206\u949F mm\u3001\u79D2 ss\u3001\u661F\u671F ddd/dddd \u548C\u65B9\u62EC\u53F7\u6587\u5B57\u3002\u4E0D\u5168\u5C40\u66FF\u6362\u540E\u7AEF/\u5176\u5B83\u65E5\u671F\u5E93\u5B57\u7B26\u4E32\u3002","- \u7528\u6700\u7EC8Vue3\u4EA7\u7269\u6838\u5BF9\u521D\u59CB\u56DE\u663E\u3001\u9009\u62E9\u65E5\u671F\u3001\u7ED1\u5B9A\u503C\u53CA\u63A5\u53E3\u65E5\u671F\u53C2\u6570\uFF1Blint/build\u901A\u8FC7\u4E0D\u80FD\u66FF\u4EE3\u65E5\u671F\u9A8C\u6536\u3002","","### \u4E3B\u9898\u9002\u914D\uFF08E2\uFF1B\u4E0D\u4F9D\u8D56 gogocode\uFF09",...ne.length?ne.map(e=>`- ${e}`):["- \u672A\u53D1\u73B0\u53EF\u5B89\u5168\u81EA\u52A8\u66FF\u6362\u7684\u9759\u6001\u4E3B\u9898\u6837\u5F0F\uFF1B\u52A8\u6001\u503C\u4E0E\u7279\u6B8A\u5C3A\u5BF8\u89C1\u4EBA\u5DE5\u6E05\u5355\u3002"],"- \u4EA7\u54C1\u53EA\u6D88\u8D39\u5E73\u53F0 --epx-* / --color-text-* \u53D8\u91CF\u5E76\u4FDD\u7559\u65E7\u503C fallback\uFF0C\u4E0D\u5BFC\u5165\u6574\u5957\u4E3B\u9898\u6216\u5199\u5168\u5C40 :root \u9ED8\u8BA4\u503C\uFF1Bscoped\u3001\u5706\u5F62/\u80F6\u56CA\u3001\u56FE\u6807\u3001\u6253\u5370\u6837\u5F0F\u4FDD\u7559\u3002","- \u7528\u6700\u7EC8\u4EA7\u7269\u5207\u6362\u5B57\u53F7\u3001\u5706\u89D2\u3001\u660E\u6697\u53CA\u5BC6\u5EA6\uFF0C\u6838\u5BF9\u4EA7\u54C1\u4E0E\u5E73\u53F0\u540C\u6B65\u3001\u61D2\u52A0\u8F7D\u524D\u540E\u53CA\u7EC4\u4EF6\u5916\u6837\u5F0F\u3002\u4E0D\u80FD\u5B89\u5168\u81EA\u52A8\u5904\u7406\u7684\u52A8\u6001\u503C\u987B\u8FFD\u8E2A\u6765\u6E90\u5E76\u4FEE\u590D\u6216\u8BB0\u5F55\u4FDD\u7559\u7406\u7531\u3002","","## \u2462 .vue \u8F6C\u6362\uFF08gogocode + \u4FEE\u8865\uFF0C\u5DF2\u81EA\u52A8\uFF09\u4E0E\u4EBA\u5DE5\u590D\u6838\u6E05\u5355\uFF08\u6570\u5B57=\u547D\u4E2D\u6587\u4EF6\u6570\uFF09",'- style \u5757\u5168\u7A0B\u5FEB\u7167\u4FDD\u62A4\uFF08gogocode \u4F1A\u6BC1 scss \u6CE8\u91CA\u5757/\u5220 style\uFF09\uFF1Bicons \u5305\u540D\u6539\u5199\uFF1BJSX \u6807 lang="jsx"',...Object.entries(qe).filter(([,e])=>e>0).map(([e,t])=>`- [ ] **${t} \u6587\u4EF6**\uFF1A${e}`),"","### \u5176\u5B83\u4EBA\u5DE5\u9879",...$.length?$.map(e=>`- [ ] ${e}`):["- \uFF08\u65E0\uFF09"],"","## \u2465 \u7B2C\u4E09\u65B9\u8FD0\u884C\u65F6\u4F9D\u8D56\uFF08Vue3 \u517C\u5BB9\u6027\uFF09",...J.length?["> Vue3 \u4EA7\u7269\u4E0D\u8D70\u5E73\u53F0 vue2-remote-shim \u57AB\u7247\uFF0C\u9762\u5411 Vue2 \u7684\u7B2C\u4E09\u65B9\u8FD0\u884C\u65F6\u5E93\u4F1A**\u8FD0\u884C\u65F6\u5D29**\uFF08\u5982\u7EC4\u7EC7\u67B6\u6784\u56FE `_c`\uFF09\u3002\u53EA\u80FD\u6362\u5E93/\u81EA\u5C01\u88C5\uFF0C\u5DE5\u5177\u4E0D\u81EA\u52A8\u6539\u3002","",...J.map(e=>`- [ ] ${e.kind==="known"?"**\u786E\u5B9A\u4E0D\u517C\u5BB9**":"\u7591\u4F3C"} \`${e.name}\`\uFF1A${e.detail}`)]:["- \uFF08\u672A\u53D1\u73B0\uFF1B\u4F9D\u8D56\u672A\u5B89\u88C5\u65F6\u7ED3\u679C\u4E0D\u5B8C\u6574\uFF0C`npm i` \u540E\u91CD\u8DD1\u66F4\u51C6\uFF09"],"","## \u53C2\u7167","- \u5E73\u53F0\u8FC1\u79FB\u8BB0\u6863\uFF1A`epx-frame/docs/migration/`\uFF08\u540C\u6B3E\u5751\uFF09","- **\u6784\u5EFA\u901A\u8FC7 \u2260 \u8FD0\u884C\u7B49\u4EF7**\uFF1A\u4E0A\u5E73\u53F0\u771F\u73AF\u5883\u70B9\u5173\u952E\u9875\u9762\uFF08\u5217\u8868/\u8868\u5355/\u5F39\u7A97/\u6D41\u7A0B\uFF09\uFF1BJSX \u7684 scopedSlots \u7B49 Vue2 \u8BED\u4E49\u91CD\u70B9\u770B","- **\u6837\u5F0F\u9694\u79BB\u9A8C\u6536**\uFF1A\u9ED8\u8BA4\u4FDD\u7559 scoped\uFF1B\u8C03\u6574\u4F5C\u7528\u57DF\u65F6\uFF0C\u987B\u7528\u6700\u7EC8\u61D2\u52A0\u8F7D\u4EA7\u7269\u68C0\u67E5\u7EC4\u4EF6\u5185\u6548\u679C\u3001\u52A0\u8F7D\u524D\u540E\u7EC4\u4EF6\u5916\u540C\u540D\u5143\u7D20\u53CA\u79BB\u5F00\u9875\u9762\u540E\u7684\u5176\u4ED6\u9875\u9762\u3002\u6784\u5EFA\u6216\u9759\u6001\u626B\u63CF\u901A\u8FC7\u4E0D\u80FD\u66FF\u4EE3\u9694\u79BB\u56DE\u5F52\uFF1B\u672A\u6D4B\u9879\u8BB0\u5F55\u4E3A\u5F85\u9A8C\u8BC1\u3002","- \u6682\u4E0D\u91CD\u5EFA\u7684\u8001\u5E93\uFF1A\u5E73\u53F0\u4FA7 Vue2 \u57AB\u7247\u515C\u5E95\uFF08`INCLUDE_VUE2_COMPAT`\uFF09",""].join(`
72
- `);h.push({file:"MIGRATION-REPORT.md",after:bt});_(T?"\u843D\u76D8\uFF08--apply\uFF09":"DRY-RUN\uFF08\u672A\u5199\u6587\u4EF6\uFF09");for(let e of h){let t=F(e.file);if(e.remove){T&&!K?(m.rmSync(t,{force:!0}),l(` \u2717 \u5220 ${e.file}`)):l(` [dry-run] \u5C06\u5220 ${e.file}`);continue}T&&!K?(m.mkdirSync(S.dirname(t),{recursive:!0}),m.writeFileSync(t,e.after),l(` \u2713 \u5199 ${e.file}`)):K&&e.file==="MIGRATION-REPORT.md"?(m.writeFileSync(t,e.after),l(` \u2713 \u5199 ${e.file}`)):l(` [dry-run] \u5C06\u6539 ${e.file}`)}l(`
73
- \u5B8C\u6210\u3002${T?"\u5DF2\u843D\u76D8\uFF0C\u7528 git diff \u5BA1\u67E5\u3002":"dry-run\uFF1B--apply \u843D\u76D8\u3002"}\u4EBA\u5DE5\u6E05\u5355\u89C1 MIGRATION-REPORT.md\u3002`);
282
+ \uFF08\u6821\u9A8C\u62A5\u9519\uFF1A${m}\uFF09`);else{g(` \u2713 ${e}\uFF1A\u6CE8\u5165\u6309\u9700\u6253\u5305\u63D2\u4EF6\uFF08\u9ED8\u8BA4\u5173\uFF0Cglob='${n}'\uFF09`),s?s.after=p.src:P.push({file:e,after:p.src});let a=[...P].reverse().find(y=>y.file==="package.json"),u=null;try{u=JSON.parse(a?a.after:$("package.json")||"{}")}catch{u=null}if(!u)C.push("package.json \u89E3\u6790\u5931\u8D25\uFF0C\u672A\u80FD\u8865 build:lib:lazy \u811A\u672C\u4E0E cross-env\uFF0C\u8BF7\u624B\u52A8\u52A0\u3002");else{let{pkg:y,changed:v}=je(u);if(v){let A=JSON.stringify(y,null,2)+`
283
+ `;a?a.after=A:P.push({file:"package.json",after:A}),g(" \u2713 package.json\uFF1A\u52A0 build:lib:lazy \u811A\u672C\u4E0E cross-env")}else g(" \xB7 package.json\uFF1Abuild:lib:lazy \u4E0E cross-env \u5DF2\u5728\uFF0C\u8DF3\u8FC7")}}}}}}R("\u2465 \u7B2C\u4E09\u65B9\u8FD0\u884C\u65F6\u4F9D\u8D56 Vue3 \u517C\u5BB9\u6027\u626B\u63CF");var Z=[];{let e={};try{e=JSON.parse($("package.json")||"{}").dependencies||{}}catch{e={}}let t=Object.keys(e).filter(n=>ke.has(n));for(let n of t){if(ee[n])continue;if(te[n]){Z.push({name:n,kind:"known",detail:te[n].note}),g(` \u2717 ${n}\uFF1A\u5DF2\u77E5 Vue2-only \u2014\u2014 ${te[n].note}`);continue}let o=null;try{o=JSON.parse(h.readFileSync(N(`node_modules/${n}/package.json`),"utf8"))}catch{o=null}if(!o)continue;let s=o.peerDependencies&&o.peerDependencies.vue||o.dependencies&&o.dependencies.vue||"";s&&Wt(s)&&(Z.push({name:n,kind:"suspect",detail:`\u5176 package.json \u58F0\u660E vue \u652F\u6301 "${s}"\uFF08\u53EA\u5339\u914D Vue2\uFF09`}),g(` \xB7 ${n}\uFF1A\u7591\u4F3C Vue2-only\uFF08vue="${s}"\uFF09`))}Z.length||g(" \xB7 \u672A\u53D1\u73B0\u9762\u5411 Vue2 \u7684\u7B2C\u4E09\u65B9\u8FD0\u884C\u65F6\u5E93\uFF08\u4F9D\u8D56\u672A\u5B89\u88C5\u65F6\u7ED3\u679C\u4E0D\u5B8C\u6574\uFF0Cnpm i \u540E\u91CD\u8DD1\u66F4\u51C6\uFF09")}{let e=l(n=>/<template[\s>]/.test(n.replace(/<script[\s\S]*?<\/script>/gi,"").replace(/<style[\s\S]*?<\/style>/gi,"")),"hasSfcTemplate"),t=j.filter(n=>{let o=h.readFileSync(n,"utf8");return!e(o)&&/<style[^>]*\bscoped/.test(o)});if(t.length){R("\u2466 JSX \u7EC4\u4EF6 scoped \u6837\u5F0F\u5339\u914D\u590D\u6838"),g(` \u26A0 ${t.length} \u4E2A\u300C\u65E0 <template> + <style scoped>\u300D\u7EC4\u4EF6\u5F85\u590D\u6838\uFF1B\u7ED3\u6784\u547D\u4E2D\u4E0D\u8BC1\u660E\u6837\u5F0F\u5931\u6548\uFF0C\u5148\u4FDD\u7559 scoped \u5E76\u9A8C\u8BC1\u6700\u7EC8\u4EA7\u7269\uFF08\u89C1 pitfalls F15\uFF09`);for(let n of t){let s=(h.readFileSync(n,"utf8").match(/::v-deep|:deep\(|\/deep\/|>>>/g)||[]).length;g(` \xB7 ${F.relative(w,n).replace(/\\/g,"/")}${s?`\uFF08\u542B ${s} \u5904\u6DF1\u5C42\u9009\u62E9\u5668\uFF0C\u6838\u5BF9\u5176\u4F5C\u7528\u8303\u56F4\u4E0E\u6700\u7EC8 CSS\uFF09`:""}`)}C.push(`\u3010\u6837\u5F0F\xB7\u5F85\u8FD0\u884C\u65F6\u590D\u6838\u3011${t.length} \u4E2A JSX/render \u7EC4\u4EF6\uFF08\u65E0 <template>\uFF09\u4F7F\u7528\u4E86 <style scoped>\uFF1B\u8FD9\u4E0D\u8BC1\u660E\u6837\u5F0F\u5931\u6548\uFF0C\u9ED8\u8BA4\u4FDD\u7559 scoped\u3002\u7528\u6700\u7EC8\u4EA7\u7269\u9010\u4E2A\u6838\u5BF9\u5F02\u5E38\u5143\u7D20\u7684 DOM\u3001CSS \u9009\u62E9\u5668\u4E0E\u8BA1\u7B97\u6837\u5F0F\uFF0C\u4EC5\u4FEE\u590D\u5DF2\u8BC1\u5B9E\u7684\u95EE\u9898\u3002\u82E5\u786E\u9700\u53BB scoped\uFF0C\u5FC5\u987B\u540C\u65F6\u5B8C\u6210\u5168\u90E8\u89C4\u5219\u7684\u552F\u4E00\u547D\u540D\u7A7A\u95F4\u9694\u79BB\uFF0C\u5E76\u9A8C\u8BC1\u7EC4\u4EF6\u5916\u540C\u540D\u5143\u7D20\u53CA\u8DE8\u9875\u9762\u6837\u5F0F\u4E0D\u53D7\u5F71\u54CD\uFF1B\u672A\u9A8C\u8BC1\u9879\u4E0D\u5F97\u8BA1\u4E3A\u901A\u8FC7\uFF08\u89C1 pitfalls F15\uFF09\uFF1A${t.map(n=>F.relative(w,n).replace(/\\/g,"/")).join("\u3001")}`)}}var H=null;if(ct){R("V. webpack \u2192 Vite \u5F62\u6001\u8F6C\u6362");let e=[...P].reverse().find(p=>p.file==="package.json"&&!p.remove),t=[...P].reverse().find(p=>p.file===T&&!p.remove),o=_e({projectDir:w,read:l(p=>p===T&&t?t.after:$(p),"readForVite"),epxFrameSpec:pe,basePkgRaw:e?e.after:null});H=o.info;for(let p of o.changes){if(p.file==="package.json"&&!p.remove&&e){e.after=p.after,g(" \u2713 package.json\uFF08\u5E76\u5165 \u2460 \u4F9D\u8D56\u8FC1\u79FB\u4EA7\u51FA\uFF09");continue}P.push(p),g(` ${p.remove?"\u2717 \u5220":"\u2713"} ${p.file}`)}for(let p of o.manual)C.push(p);H.removedDeps&&H.removedDeps.length&&g(` \xB7 \u6458\u9664 webpack \u6784\u5EFA\u4F9D\u8D56 ${H.removedDeps.length} \u4E2A\uFF1A${H.removedDeps.join(", ")}`),g(` \xB7 \u7EC4\u4EF6\u76EE\u5F55 dirName='${H.dirName}'\uFF0ClazyLib glob='${H.glob}'`);let s=0,i=0;for(let p of D){let r=F.relative(w,p).replace(/\\/g,"/"),m=[...P].reverse().find(y=>y.file===r&&!y.remove),a=m?m.after:h.readFileSync(p,"utf8"),u=Xe(a,{isVue:p.endsWith(".vue")});u.src!==a&&(m?m.after=u.src:P.push({file:r,after:u.src}),s+=u.count,i++),u.templateAsset&&C.push(`${r}\uFF1A\u6A21\u677F\u91CC\u6709 require('\u56FE\u7247')\uFF0C\u6539\u6210\u6A21\u5757\u9876\u5C42 import \u53D8\u91CF\u540E Options API \u7684 this \u53D6\u4E0D\u5230\uFF0C\u9700\u624B\u5DE5\u6362 :src \u7ED1\u5B9A data/computed \u6216 new URL(..., import.meta.url)\u3002`)}s&&g(` \u2713 \u6E90\u7801 require.context\u2192import.meta.glob / require(\u56FE\u7247)\u2192\u9759\u6001 import\uFF1A${s} \u5904 / ${i} \u6587\u4EF6`)}R("\u8FD0\u884C\u65F6\u6807\u8BC6\uFF08runtime: vue3\uFF09");if(T){let e=[...P].reverse().find(o=>o.file===T&&!o.remove),t=e?e.after:$(T),n=et(t);n.marked?(n.src!==t&&(e?e.after=n.src:P.push({file:T,after:n.src})),g(` \u2713 ${T}\uFF1A\u9ED8\u8BA4\u5BFC\u51FA\u5305\u542B runtime: 'vue3'`)):(C.push(`${T} \u672A\u80FD\u81EA\u52A8\u6DFB\u52A0 runtime \u6807\u8BC6\uFF1A${n.reason}\u3002\u8BF7\u8BA9\u9ED8\u8BA4\u5BFC\u51FA\u7684\u5E93\u5BF9\u8C61\u5305\u542B runtime: 'vue3'\uFF1B\u672A\u6807\u8BC6\u65F6\u5E73\u53F0\u4FDD\u7559\u65E7\u7248\u517C\u5BB9\u3002`),g(` \xB7 ${T}\uFF1A\u6807\u8BC6\u672A\u6CE8\u5165\uFF0C\u5DF2\u8BB0\u5F55\u4EBA\u5DE5\u6E05\u5355`))}else C.push("\u672A\u627E\u5230\u8FDC\u7A0B\u5E93\u5165\u53E3\uFF1B\u8BF7\u8BA9\u5E93\u9ED8\u8BA4\u5BFC\u51FA\u5305\u542B runtime: 'vue3'\u3002package.json \u6807\u8BC6\u4E0D\u4F1A\u5355\u72EC\u4F20\u5230\u6D4F\u89C8\u5668\u3002");R("\u65E5\u671F\u63A7\u4EF6\u683C\u5F0F\uFF08Element UI \u2192 Element Plus\uFF09");var ye=[];for(let e of D){let t=F.relative(w,e),n=P.find(s=>s.file===t&&!s.remove),o=Ce(n?n.after:h.readFileSync(e,"utf8"),{filename:e});if(o.count){n?n.after=o.src:P.push({file:t,after:o.src});for(let s of o.fixes)ye.push(`${t}:${s.line}\uFF1A${s.before} \u2192 ${s.after}`);g(` \u2713 ${t}\uFF1A${o.count} \u5904\u65E5\u671F\u683C\u5F0F\u4FEE\u590D`)}for(let s of o.warnings)C.push(`${t}\uFF1A${s}\uFF08F21\uFF1B\u5B8C\u6210\u683C\u5F0F\u6765\u6E90\u4FEE\u590D\u540E\u518D\u9A8C\u6536\uFF09`)}R("\u4EA7\u54C1\u4E3B\u9898\u9002\u914D\uFF08\u6D88\u8D39\u5E73\u53F0\u53D8\u91CF\uFF0C\u4FDD\u7559 scoped\uFF09");var be=[];for(let e of[...D,...lt]){let t=F.relative(w,e),n=[...P].reverse().find(s=>s.file===t&&!s.remove),o=Pe(n?n.after:h.readFileSync(e,"utf8"),{filename:e});if(o.count){n?n.after=o.src:P.push({file:t,after:o.src});for(let s of o.fixes)be.push(`${t}:${s.line}\uFF1A${s.before} \u2192 ${s.after}`);g(` \u2713 ${t}\uFF1A${o.count} \u5904\u4E3B\u9898\u53D8\u91CF\u9002\u914D`)}for(let s of o.warnings)C.push(`${t}\uFF1A${s}\uFF08E2\uFF1B\u8FFD\u8E2A\u5B9E\u9645\u6D88\u8D39\u573A\u666F\u540E\u5B8C\u6210\u4E3B\u9898\u9002\u914D\uFF09`)}if(O){R("@epxing \u72EC\u7ACB\u5305\u5165\u53E3\u4E0E\u4F9D\u8D56\u8FC1\u79FB");let t=st({read:l(n=>[...P].reverse().find(o=>o.file.replaceAll("\\","/")===n&&!o.remove)?.after??$(n),"latest"),files:D.map(n=>F.relative(w,n).replaceAll("\\","/")),packagesVersion:O,cliVersion:at,templates:zt,newVite:ct&&!["vite.config.mjs","vite.config.js","vite.config.ts"].some(n=>$(n)!=null)});ve=t.blocked;for(let n of t.changes)P.push(n);C.push(...t.manual),g(t.blocked?" \u72EC\u7ACB\u5305\u5207\u6362\u9700\u8981\u4EBA\u5DE5\u5904\u7406\uFF1B\u4FDD\u7559\u539F\u5305\u5165\u53E3\uFF0C\u672A\u6DF7\u5165\u90E8\u5206\u72EC\u7ACB\u5305\u3002":` \u2713 \u72EC\u7ACB\u5305\u7248\u672C ${O}\uFF1B\u751F\u6210\u4EA7\u54C1\u4F7F\u7528\u8BF4\u660E`)}var Jt=["# epx-migrate \u8FC1\u79FB\u62A5\u544A","",`\u9879\u76EE\uFF1A\`${F.resolve(w)}\``,`\u6A21\u5F0F\uFF1A${z?"--apply \u5DF2\u843D\u76D8":"dry-run \u672A\u843D\u76D8"}${fe?" + gogocode \u8F6C\u6362":""}`,"",...O?["## \u72EC\u7ACB\u5305\u5207\u6362","",`\u76EE\u6807\uFF1A@epxing/* ${O}\uFF0CCLI ${at}\u3002`,ve?"\u5B58\u5728\u672A\u786E\u5B9A\u7684\u65E7\u63A5\u53E3\uFF0C\u672C\u6B21\u4FDD\u7559\u65E7\u5305\u6A21\u5F0F\uFF1B\u6309\u4EBA\u5DE5\u6E05\u5355\u5904\u7406\u540E\u91CD\u65B0\u8FD0\u884C\u3002":"\u516C\u5F00\u5165\u53E3\u4E0E\u4F9D\u8D56\u5DF2\u5217\u5165\u8FC1\u79FB\u8BA1\u5212\uFF0C\u4EA7\u54C1\u4F7F\u7528\u8BF4\u660E\u89C1 PRODUCT-GUIDE.md \u6216 EPXING-PACKAGES-GUIDE.md\u3002","\u9884\u89C8\u4E0D\u4F1A\u5199\u5165\u6587\u4EF6\uFF1B\u5E94\u7528\u540E\u5B89\u88C5\u4F9D\u8D56\u5E76\u9A8C\u8BC1\u8FDC\u7A0B\u5E93\u3001\u72EC\u7ACB\u5E94\u7528\u53CA\u4E1A\u52A1\u6D41\u7A0B\u3002",""]:[],"## \u540E\u7EED\u64CD\u4F5C\u987A\u5E8F","","```bash",'git add -A && git commit -m "epx-migrate: \u4F9D\u8D56+codemod" # \u5B58\u6863\u5DE5\u5177\u6539\u52A8','npm i && git add -A && git commit -m "lockfile" # \u88C5\u65B0\u4F9D\u8D56\u5E76\u63D0\u4EA4\uFF08lock \u88AB\u8DDF\u8E2A\u65F6 --transform-vue \u7684\u5E72\u51C0\u68C0\u67E5\u9700\u8981\uFF09',...fe?[]:["node <\u672C\u5DE5\u5177> . --apply --transform-vue # \u8DD1 gogocode \u8F6C\u6362 .vue\uFF08gogocode \u81EA\u52A8\u5907\u597D\uFF0C\u542B style \u5FEB\u7167\u4FDD\u62A4\uFF09"],"npm run build:lib # \u6784\u5EFA Vue3 \u7248\u8FDC\u7A0B lib/index.js","```","","\u6784\u5EFA\u62A5\u9519\u65F6\u6309\u6587\u4EF6\u9010\u4E2A\u5904\u7406\uFF08\u6700\u5E38\u89C1\uFF1A\u5185\u8054\u4E8B\u4EF6\u591A\u8BED\u53E5\u7F3A\u5206\u53F7\u2014\u2014\u6309\u62A5\u9519\u884C\u8865 `;`\uFF09\u3002","",'\u8FD0\u884C\u65F6\u6807\u8BC6\uFF1A\u672C\u547D\u4EE4\u81EA\u52A8\u5199\u5165 package.json \u7684 `runtime: "vue3"`\uFF0C\u5E76\u7ED9\u5E93\u9ED8\u8BA4\u5BFC\u51FA\u8865\u540C\u540D\u6807\u8BC6\u3002\u6784\u5EFA\u90E8\u7F72\u540E\u8BE5\u5305\u8D70 Vue3 \u539F\u751F\u5B89\u88C5\uFF1B`vue2` \u6216\u6CA1\u6709\u6807\u8BC6\u7684\u5176\u5B83\u4EA7\u54C1/\u9879\u76EE\u5305\u7EE7\u7EED\u4F7F\u7528\u57AB\u7247\u3002\u6807\u8BC6\u8868\u793A\u8FC1\u79FB\u76EE\u6807\uFF0C\u4E0D\u4EE3\u8868\u6784\u5EFA\u6216\u4E1A\u52A1\u9A8C\u6536\u5DF2\u901A\u8FC7\uFF1B\u5B8C\u6210\u4E0B\u9762\u7684\u8F6C\u6362\u3001\u6784\u5EFA\u548C\u590D\u6D4B\u540E\u518D\u53D1\u5E03\u3002',"","\u5E93\u8D85\u8FC7 ~1MB \u65F6\u53EF\u4EE5\u518D\u8BD5\u6309\u9700\u6253\u5305\u5F62\u6001\uFF08\u9ED8\u8BA4\u5173\uFF0C\u4E0D\u5F71\u54CD\u4E0A\u9762\u8FD9\u6761\uFF09\uFF1A","","```bash","npm run build:lib:lazy # \u51FA index.js(\u5165\u53E3\u58F3) + chunks/ + index.full.js(\u515C\u5E95)","```","","\u26A0\uFE0F \u6309\u9700\u5F62\u6001**\u5FC5\u987B\u4E0A\u4F20\u6574\u4E2A `lib/` \u76EE\u5F55**\uFF08\u4E0D\u518D\u662F index.js + index.css \u4E24\u4E2A\u6587\u4EF6\uFF09\uFF1BFM_SYSTEM_WEBPACK \u91CC\u4ECD\u53EA\u914D index.js \u4E0E index.css \u4E24\u6761 url\u3002\u5207\u6362\u524D\u7684\u7EA6\u675F\u4E0E\u7EBF\u4E0A\u6392\u67E5\u624B\u6BB5\u89C1 epx-frame \u7684 `docs/PROJECT-GUIDE.md` \xA7\u4E09\u300C\u4E24\u79CD\u6253\u5305\u65B9\u5F0F\u300D\u3002","","## \u2460 \u4F9D\u8D56\u8FC1\u79FB\uFF08\u5DF2\u81EA\u52A8\uFF09","- \u8FC1\u79FB\u8868\u52A0/\u5220/\u6539 + lib \u6784\u5EFA\u95ED\u5305\uFF08webpack5/vue-loader17\uFF09+ gogocode \u5DE5\u5177 + JSX/icons \u4F9D\u8D56 + \u9690\u5F0F\u4F9D\u8D56\u8865\u58F0\u660E","","### webpack.config.js \u4EBA\u5DE5\u6838\u5BF9",...Le.map(e=>`- ${e}`),"","## \u2461 codemod\uFF08\u5DF2\u81EA\u52A8\uFF09","- main.js\uFF1A`Vue.use`\u2192`app.use`\u3001`$mount`\u2192`mount`\u3001`frame.createApp()`","- index.js\uFF1A`install(Vue)`\u2192`install(app)`\u3001`Vue.component`\u2192`app.component`","- babel.config.js\uFF1A\u5220 element-ui/vant \u6309\u9700\u63D2\u4EF6 + cli preset\uFF1BJSX \u9879\u76EE\u52A0 @vue/babel-plugin-jsx","- webpack.config.js\uFF1Aexternals \u52A0 `{ vue: window.frame.Vue }`\uFF1BJSX \u9879\u76EE babel \u89C4\u5219\u6536 .jsx","- \u7A7A .vue \u8865\u6700\u5C0F\u5408\u6CD5\u5185\u5BB9","","### \u65E5\u671F\u63A7\u4EF6\u683C\u5F0F\u81EA\u52A8\u4FEE\u590D\uFF08F21\uFF1B\u4E0D\u4F9D\u8D56 gogocode\uFF09",...ye.length?ye.map(e=>`- ${e}`):["- \u672A\u53D1\u73B0\u53EF\u9759\u6001\u4FEE\u590D\u7684\u65E7\u683C\u5F0F\uFF1B\u52A8\u6001\u6765\u6E90\u89C1\u4EBA\u5DE5\u6E05\u5355\uFF0C\u4E0D\u4EE3\u8868\u6240\u6709\u65E5\u671F\u903B\u8F91\u5DF2\u901A\u8FC7\u3002"],"- \u53EA\u4FEE\u6539\u65E5\u671F/\u65F6\u95F4\u63A7\u4EF6 format \u4E0E value-format/valueFormat\uFF1B\u4FDD\u7559\u5206\u949F mm\u3001\u79D2 ss\u3001\u661F\u671F ddd/dddd \u548C\u65B9\u62EC\u53F7\u6587\u5B57\u3002\u4E0D\u5168\u5C40\u66FF\u6362\u540E\u7AEF/\u5176\u5B83\u65E5\u671F\u5E93\u5B57\u7B26\u4E32\u3002","- \u7528\u6700\u7EC8Vue3\u4EA7\u7269\u6838\u5BF9\u521D\u59CB\u56DE\u663E\u3001\u9009\u62E9\u65E5\u671F\u3001\u7ED1\u5B9A\u503C\u53CA\u63A5\u53E3\u65E5\u671F\u53C2\u6570\uFF1Blint/build\u901A\u8FC7\u4E0D\u80FD\u66FF\u4EE3\u65E5\u671F\u9A8C\u6536\u3002","","### \u4E3B\u9898\u9002\u914D\uFF08E2\uFF1B\u4E0D\u4F9D\u8D56 gogocode\uFF09",...be.length?be.map(e=>`- ${e}`):["- \u672A\u53D1\u73B0\u53EF\u5B89\u5168\u81EA\u52A8\u66FF\u6362\u7684\u9759\u6001\u4E3B\u9898\u6837\u5F0F\uFF1B\u52A8\u6001\u503C\u4E0E\u7279\u6B8A\u5C3A\u5BF8\u89C1\u4EBA\u5DE5\u6E05\u5355\u3002"],"- \u4EA7\u54C1\u53EA\u6D88\u8D39\u5E73\u53F0 --epx-* / --color-text-* \u53D8\u91CF\u5E76\u4FDD\u7559\u65E7\u503C fallback\uFF0C\u4E0D\u5BFC\u5165\u6574\u5957\u4E3B\u9898\u6216\u5199\u5168\u5C40 :root \u9ED8\u8BA4\u503C\uFF1Bscoped\u3001\u5706\u5F62/\u80F6\u56CA\u3001\u56FE\u6807\u3001\u6253\u5370\u6837\u5F0F\u4FDD\u7559\u3002","- \u7528\u6700\u7EC8\u4EA7\u7269\u5207\u6362\u5B57\u53F7\u3001\u5706\u89D2\u3001\u660E\u6697\u53CA\u5BC6\u5EA6\uFF0C\u6838\u5BF9\u4EA7\u54C1\u4E0E\u5E73\u53F0\u540C\u6B65\u3001\u61D2\u52A0\u8F7D\u524D\u540E\u53CA\u7EC4\u4EF6\u5916\u6837\u5F0F\u3002\u4E0D\u80FD\u5B89\u5168\u81EA\u52A8\u5904\u7406\u7684\u52A8\u6001\u503C\u987B\u8FFD\u8E2A\u6765\u6E90\u5E76\u4FEE\u590D\u6216\u8BB0\u5F55\u4FDD\u7559\u7406\u7531\u3002","","## \u2462 .vue \u8F6C\u6362\uFF08gogocode + \u4FEE\u8865\uFF0C\u5DF2\u81EA\u52A8\uFF09\u4E0E\u4EBA\u5DE5\u590D\u6838\u6E05\u5355\uFF08\u6570\u5B57=\u547D\u4E2D\u6587\u4EF6\u6570\uFF09",'- style \u5757\u5168\u7A0B\u5FEB\u7167\u4FDD\u62A4\uFF08gogocode \u4F1A\u6BC1 scss \u6CE8\u91CA\u5757/\u5220 style\uFF09\uFF1Bicons \u5305\u540D\u6539\u5199\uFF1BJSX \u6807 lang="jsx"',...Object.entries(xt).filter(([,e])=>e>0).map(([e,t])=>`- [ ] **${t} \u6587\u4EF6**\uFF1A${e}`),"","### \u5176\u5B83\u4EBA\u5DE5\u9879",...C.length?C.map(e=>`- [ ] ${e}`):["- \uFF08\u65E0\uFF09"],"","## \u2465 \u7B2C\u4E09\u65B9\u8FD0\u884C\u65F6\u4F9D\u8D56\uFF08Vue3 \u517C\u5BB9\u6027\uFF09",...Z.length?["> Vue3 \u4EA7\u7269\u4E0D\u8D70\u5E73\u53F0 vue2-remote-shim \u57AB\u7247\uFF0C\u9762\u5411 Vue2 \u7684\u7B2C\u4E09\u65B9\u8FD0\u884C\u65F6\u5E93\u4F1A**\u8FD0\u884C\u65F6\u5D29**\uFF08\u5982\u7EC4\u7EC7\u67B6\u6784\u56FE `_c`\uFF09\u3002\u53EA\u80FD\u6362\u5E93/\u81EA\u5C01\u88C5\uFF0C\u5DE5\u5177\u4E0D\u81EA\u52A8\u6539\u3002","",...Z.map(e=>`- [ ] ${e.kind==="known"?"**\u786E\u5B9A\u4E0D\u517C\u5BB9**":"\u7591\u4F3C"} \`${e.name}\`\uFF1A${e.detail}`)]:["- \uFF08\u672A\u53D1\u73B0\uFF1B\u4F9D\u8D56\u672A\u5B89\u88C5\u65F6\u7ED3\u679C\u4E0D\u5B8C\u6574\uFF0C`npm i` \u540E\u91CD\u8DD1\u66F4\u51C6\uFF09"],"","## \u53C2\u7167","- \u5E73\u53F0\u8FC1\u79FB\u8BB0\u6863\uFF1A`epx-frame/docs/migration/`\uFF08\u540C\u6B3E\u5751\uFF09","- **\u6784\u5EFA\u901A\u8FC7 \u2260 \u8FD0\u884C\u7B49\u4EF7**\uFF1A\u4E0A\u5E73\u53F0\u771F\u73AF\u5883\u70B9\u5173\u952E\u9875\u9762\uFF08\u5217\u8868/\u8868\u5355/\u5F39\u7A97/\u6D41\u7A0B\uFF09\uFF1BJSX \u7684 scopedSlots \u7B49 Vue2 \u8BED\u4E49\u91CD\u70B9\u770B","- **\u6837\u5F0F\u9694\u79BB\u9A8C\u6536**\uFF1A\u9ED8\u8BA4\u4FDD\u7559 scoped\uFF1B\u8C03\u6574\u4F5C\u7528\u57DF\u65F6\uFF0C\u987B\u7528\u6700\u7EC8\u61D2\u52A0\u8F7D\u4EA7\u7269\u68C0\u67E5\u7EC4\u4EF6\u5185\u6548\u679C\u3001\u52A0\u8F7D\u524D\u540E\u7EC4\u4EF6\u5916\u540C\u540D\u5143\u7D20\u53CA\u79BB\u5F00\u9875\u9762\u540E\u7684\u5176\u4ED6\u9875\u9762\u3002\u6784\u5EFA\u6216\u9759\u6001\u626B\u63CF\u901A\u8FC7\u4E0D\u80FD\u66FF\u4EE3\u9694\u79BB\u56DE\u5F52\uFF1B\u672A\u6D4B\u9879\u8BB0\u5F55\u4E3A\u5F85\u9A8C\u8BC1\u3002","- \u6682\u4E0D\u91CD\u5EFA\u7684\u8001\u5E93\uFF1A\u5E73\u53F0\u4FA7 Vue2 \u57AB\u7247\u515C\u5E95\uFF08`INCLUDE_VUE2_COMPAT`\uFF09",""].join(`
284
+ `);P.push({file:"MIGRATION-REPORT.md",after:Jt});R(z?"\u843D\u76D8\uFF08--apply\uFF09":"DRY-RUN\uFF08\u672A\u5199\u6587\u4EF6\uFF09");for(let e of P){let t=N(e.file);if(e.remove){z&&!ue?(h.rmSync(t,{force:!0}),g(` \u2717 \u5220 ${e.file}`)):g(` [dry-run] \u5C06\u5220 ${e.file}`);continue}z&&!ue?(h.mkdirSync(F.dirname(t),{recursive:!0}),h.writeFileSync(t,e.after),g(` \u2713 \u5199 ${e.file}`)):ue&&e.file==="MIGRATION-REPORT.md"?(h.writeFileSync(t,e.after),g(` \u2713 \u5199 ${e.file}`)):g(` [dry-run] \u5C06\u6539 ${e.file}`)}g(`
285
+ \u5B8C\u6210\u3002${z?"\u5DF2\u843D\u76D8\uFF0C\u7528 git diff \u5BA1\u67E5\u3002":"dry-run\uFF1B--apply \u843D\u76D8\u3002"}\u4EBA\u5DE5\u6E05\u5355\u89C1 MIGRATION-REPORT.md\u3002`);ve&&(process.exitCode=2);