@epxing/cli 0.5.0-beta.3 → 0.5.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,288 +1,80 @@
1
1
  #!/usr/bin/env node
2
- import{a as Ce}from"../chunks/AMQWUBTZ.mjs";import{a as Ie}from"../chunks/PP5RD4RH.mjs";import{a as $e}from"../chunks/SH6LMMHZ.mjs";import{a as l,c as Ee}from"../chunks/H4POBCHI.mjs";import v from"node:fs";import ve from"node:os";import P from"node:path";import{execSync as de,spawnSync as at}from"node:child_process";import{fileURLToPath as zt}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"},ae={"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"},Fe={"@element-plus/icons-vue":"^2.3.1"},pe={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"},je=['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 xt=/import\.meta\.glob\(\s*(['"])([^'"]+)\1\s*,\s*\{\s*eager\s*:\s*true\s*\}\s*\)/;function _e(e){let t=xt.exec(String(e||""));return t?t[2]:null}l(_e,"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 we=l(e=>/'/.test(e)?JSON.stringify(e):`'${e}'`,"q"),bt=`import lazyLib from 'epx-frame/build/vite-plugin-lazy-lib.mjs'
3
- `,vt=/^([ \t]*)frameDeps\s*\(\s*\)\s*,?[^\n]*$/m;function Re(e,{glob:t,pkgName:n}){let o=String(e||""),i=yt(o);if(i!=="absent")return{src:o,status:i};let s=vt.exec(o);if(!s)return{src:o,status:"no-anchor"};let r=s[1],a=`
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: ${we(t)}, pkgName: ${we(n)} }),`,u=o.slice(0,s.index+s[0].length)+a+o.slice(s.index+s[0].length),p=0;if(u.startsWith("#!")){let S=u.indexOf(`
7
- `);p=S===-1?u.length:S+1}let d=/^([ \t]*\/\/[^\n]*\r?\n|[ \t]*\r?\n)/,y;for(;y=u.slice(p).match(d);)p+=y[0].length;return u=u.slice(0,p)+bt+u.slice(p),{src:u,status:"injected"}}l(Re,"injectLazyLib");function Te(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 i=!!(t.dependencies||{})["cross-env"],s=!!(t.devDependencies||{})["cross-env"];return!i&&!s?(n.devDependencies={...t.devDependencies||{},"cross-env":"^7.0.3"},o=!0):t.devDependencies&&(n.devDependencies={...t.devDependencies}),{pkg:n,changed:o}}l(Te,"addLazyScripts");import{TEMPLATES as Le}from"../epx-create/scaffold.mjs";var ht=["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 St(e){let t=e,n=!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 })`),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(St,"viteEntryCodemod");function De({read:e,epxFrameSpec:t,basePkgRaw:n}){let o=[],i=[],s=n||e("package.json");if(!s)return{changes:o,manual:["\u65E0 package.json\uFF0C\u65E0\u6CD5\u505A vite \u5316"],info:{}};let r;try{r=JSON.parse(s)}catch(f){return{changes:o,manual:["package.json \u89E3\u6790\u5931\u8D25\uFF1A"+f.message],info:{}}}let a=String(r.name||"").toLowerCase(),u=["src/index.js","index.js"].find(f=>e(f)!=null),p=u?e(u):"",d=/import\.meta\.glob/.test(p),y=null,S=p.match(/require\.context\(\s*['"]@\/([^'"]+)['"]/);if(S)y=S[1];else if(d){let f=p.match(/import\.meta\.glob\(\s*['"]\.\/([^/'"]+)\//);f&&(y=f[1])}y||(y=a,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 A=`./${y}/**/*.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 f=Le["vite.config.mjs"].replaceAll("__NAME__",a).replaceAll("__DIRNAME__",y);o.push({file:"vite.config.mjs",after:f})}let j=t||r.dependencies&&r.dependencies["epx-frame"]||"^5.3.0",x=JSON.parse(Le["package.json"].replaceAll("__NAME__",a).replaceAll("__EPX_FRAME__",j));r.runtime=x.runtime,r.scripts={...r.scripts||{},...x.scripts},r.devDependencies=r.devDependencies||{};for(let[f,k]of Object.entries(x.devDependencies))r.devDependencies[f]=k;let h=[];for(let f of["dependencies","devDependencies"])if(r[f])for(let k of Object.keys(r[f]))ht.includes(k)&&(delete r[f][k],h.push(k));o.push({file:"package.json",after:JSON.stringify(r,null,2)+`
9
- `});for(let f of["webpack.config.js","vue.config.js","babel.config.js"])e(f)!=null&&o.push({file:f,remove:!0});if(u&&/require\.context/.test(p)){let f=St(p);f.changed?(o.push({file:u,after:f.src}),i.push(`\u5165\u53E3 ${u} \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 ${u} \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 f=c.match(/resources:\s*path\.resolve\([^,]*,\s*['"]([^'"]+)['"]/);i.push(`scss \u5168\u5C40\u6CE8\u5165\uFF1A\u65E7\u914D\u7F6E\u7528 sass-resources-loader \u6CE8\u5165 ${f?"`"+f[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)&&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 g=c.match(/url-loader[\s\S]{0,120}?limit:\s*([0-9*\s]+)/);g&&i.push(`\u65E7\u914D\u7F6E\u7528 url-loader \u5185\u8054\u5C0F\u8D44\u6E90\uFF08limit\u2248${g[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 f=["recorder","echarts","xlsx","jspdf","luckysheet","pdfjs","signature"].filter(k=>new RegExp(k,"i").test(b[1]));f.length&&i.push(`\u65E7 externals \u542B\u6A21\u677F\u9ED8\u8BA4\u672A\u8986\u76D6\u7684\u5E93\uFF1A${f.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:a,dirName:y,glob:A,removedDeps:h}}}l(De,"planToVite");var kt=/import\s+(\w+)\s*,\s*\{([^}]*)\}\s*from\s*(['"])epx-frame\3/;function Me(e){let t=String(e||""),n=kt.exec(t);if(!n)return t;let[o,i,s,r]=n,a=t.slice(0,n.index)+t.slice(n.index+o.length),u=s.split(",").map(d=>d.trim()).filter(Boolean).filter(d=>{let y=d.split(/\s+as\s+/).pop().trim();return/^[A-Za-z_$][\w$]*$/.test(y)?new RegExp(`(^|[^.\\w$])${y}\\b`).test(a):!0}),p=u.length?`import ${i}, { ${u.join(", ")} } from ${r}epx-frame${r}`:`import ${i} from ${r}epx-frame${r}`;return t.slice(0,n.index)+p+t.slice(n.index+o.length)}l(Me,"collapseFrameImport");import ce from"node:path";var Et=["gogocode-plugin-vue","gogocode-plugin-element"];function Ve(e,t){for(let n of e||[]){if(!n)continue;let o=ce.join(n,"node_modules"),i=ce.join(o,"gogocode-cli","index.js");if(t(i)&&!Et.some(s=>!t(ce.join(o,s))))return i}return null}l(Ve,"findGogocode");function $t({projectDir:e,toolDir:t,cacheDir:n}){return[e,t,n].filter(Boolean)}l($t,"gogocodeRoots");function Ne({projectDir:e,toolDir:t,cacheDir:n,versions:o,exists:i,install:s,log:r}){let a=r||(()=>{}),u=$t({projectDir:e,toolDir:t,cacheDir:n}),p=Ve(u,i);if(p)return{cli:p,installed:!1};let d=Object.entries(o||{}).map(([S,A])=>`${S}@${A}`);if(!d.length)return{cli:null,installed:!1,error:"\u6CA1\u6709\u53EF\u5B89\u88C5\u7684 gogocode \u7248\u672C\u6E05\u5355"};a(` \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{s({cacheDir:n,specs:d})}catch(S){return{cli:null,installed:!1,error:String(S&&S.message||S).slice(0,200)}}let y=Ve([n],i);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(Ne,"ensureGogocode");var Ct=[".vue",".js",".jsx",".ts",".tsx"],It=l(e=>Ct.some(t=>e.toLowerCase().endsWith(t)),"isSource");function Oe(e,t,n,o){let i=n,s=o,r=0,a=l((u,p)=>{let d;try{d=i.readdirSync(u,{withFileTypes:!0})}catch{return}for(let y of d){let S=s.join(u,y.name),A=s.join(p,y.name);y.isDirectory()?a(S,A):It(y.name)&&(i.mkdirSync(s.dirname(A),{recursive:!0}),i.copyFileSync(S,A),r++)}},"walk");return a(e,t),r}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 Pt=l(e=>/install\s*=\s*function\s*\(\s*app\b/.test(String(e||""))||/\binstall\s*\(\s*app\b/.test(String(e||"")),"hasAppParam");function Ft(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(Ft,"rewriteVueGlobals");function jt(e){return String(e||"").replace(/\bwindow\.\$vueApp\b/g,"app")}l(jt,"rewriteVueAppGlobal");function Ge(e){let t=At(e);return Pt(t)&&(t=Ft(t)),t=jt(t),t}l(Ge,"codemodLibEntry");var wt=/[;,{([<>=&|?:.+\-*/]$/,_t=/^(=>|\?|:|\.|\)|\]|\}|,|&&|\|\||\+|-|\*|\/|=)/,Rt=/[)\]\w'"`]$/;function Tt(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 i=t[o].replace(/\s+$/,"");if(!i.trimStart())continue;let r=(t.slice(o+1).find(a=>a.trim())||"").trim();r&&(wt.test(i)||_t.test(r)||Rt.test(i)&&(t[o]=i+";",n++))}return{val:t.join(`
13
- `),n}}l(Tt,"fixValue");function ze(e){let t=0;return{src:e.replace(/(?:v-bind)?:([\w-]+)\.sync="([^"]*)"/g,(o,i,s)=>(t++,`v-model:${i}="${s}"`)),count:t}}l(ze,"fixSyncModifier");function He(e){let t=0;return{src:e.replace(/((?:@|v-on:)[\w.:-]+=")([^"]*)(")/g,(o,i,s,r)=>{let a=Tt(s);return t+=a.n,i+a.val+r}),count:t}}l(He,"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,i)=>(t++,`<i class="${We(i)}"></i>`)),n=n.replace(/<(ElIcon[A-Za-z0-9]+)\s*\/>/g,(o,i)=>(t++,`<i class="${We(i)}"></i>`)),n=n.replace(/^[ \t]*ElIcon[A-Za-z0-9]+,[ \t]*\r?\n/gm,()=>(t++,"")),{src:n,count:t}}l(Je,"fixElIcon");var Lt=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,i=[...t.matchAll(o)].filter(s=>Lt.has(s[2]));for(let s of i){let r=s[0],a=s[1],u=s[2],p=new RegExp("\\b"+a+"\\.([A-Za-z_$][\\w$]*)","g"),d=new Set,y;for(;y=p.exec(t);)d.add(y[1]);if(d.size===0)t=t.replace(r,"");else{let S=[...d].join(", ");t=t.replace(r,`import { ${S} } from '${u}'
14
- `),t=t.replace(new RegExp("\\b"+a+"\\.([A-Za-z_$][\\w$]*)","g"),"$1")}n++}return{src:t,count:n}}l(qe,"fixNamespaceImport");function Dt(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,i=[...t.matchAll(o)];for(let s of i){let r=s[0],a=s[1],u=s[2],p=s[4],d=s[5],S=s[6].match(/\\?\.([a-zA-Z0-9]+)\$?$/),A=S?"."+S[1]:".*",j=p.replace(/\/+$/,"")+(d==="true"?"/**/*":"/*")+A;t=t.replace(r,`${a}import.meta.glob('${j}', { eager: true })`),t=t.replace(new RegExp("\\b"+u+"\\.keys\\(\\)","g"),`Object.keys(${u})`),t=t.replace(new RegExp("\\b"+u+"\\(\\s*([A-Za-z_$][\\w$]*)\\s*\\)","g"),`${u}[$1]`),n++}return{src:t,count:n}}l(Dt,"fixRequireContext");function Ke(e){let t=/require\(\s*(['"])((?:@\/|\.\.?\/)[^'"]+\.(?:png|jpe?g|gif|svg|webp|bmp|ico))\1\s*\)/gi,n=new Map,o=l(a=>{if(n.has(a))return n.get(a);let p="__img_"+((a.split("/").pop()||"asset").replace(/\.[^.]+$/,"").replace(/[^A-Za-z0-9]/g,"_")||"x"),d=p,y=1,S=new Set(n.values());for(;S.has(d);)d=p+"_"+y++;return n.set(a,d),d},"mkVar"),i=0,s=e.replace(t,(a,u,p)=>(i++,o(p))),r=[...n.entries()].map(([a,u])=>`import ${u} from '${a}'`).join(`
15
- `);return{body:s,imports:r,count:i}}l(Ke,"collectRequireAsset");function Xe(e,t={}){let n=!!t.isVue,o=0,i=!1,s=e,r=Dt(s);if(s=r.src,o+=r.count,n){let a=s.match(/(<script(?:\s[^>]*)?>)([\s\S]*?)(<\/script>)/);if(a){let u=Ke(a[2]);if(u.count){let d=`
16
- `+u.imports+`
17
- `+u.body.replace(/^\n?/,"");s=s.slice(0,a.index)+a[1]+d+a[3]+s.slice(a.index+a[0].length),o+=u.count}let p=s.replace(/<script(?:\s[^>]*)?>[\s\S]*?<\/script>/,"");/require\(\s*['"](?:@\/|\.\.?\/)[^'"]+\.(?:png|jpe?g|gif|svg|webp|bmp|ico)['"]\s*\)/i.test(p)&&(i=!0)}}else{let a=Ke(s);a.count&&(s=a.imports+`
18
- `+a.body,o+=a.count)}return{src:s,count:o,templateAsset:i}}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,(s,r)=>(n++,"on"+r+"=")),t=t.replace(/\bscopedSlots=\{\{/g,()=>(n++,"v-slots={{"));let o=[],i=t.search(/<script\b/);if(i>=0){let s={};for(let r of t.slice(i).matchAll(/\bslot=["']([^"']+)["']/g))s[r[1]]=(s[r[1]]||0)+1;for(let r of Object.keys(s))o.push(`JSX \u5177\u540D\u63D2\u69FD slot="${r}" \xD7${s[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:n,warnings:o}}l(Ye,"fixJsxVue2");var Qe=Ee($e(),1);var Mt=l(e=>e&&!e.computed&&(e.key?.name==="runtime"||e.key?.value==="runtime"),"isRuntime"),Ze=l(e=>e?.type==="ObjectExpression"&&Mt(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(d=>d.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,i=t.program.body[t.program.body.indexOf(n)-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 s=o.type==="CallExpression"&&o.callee.type==="MemberExpression"&&!o.callee.computed&&o.callee.object.name==="Object"&&o.callee.property.name==="assign";if(Ze(o)||s&&Ze(o.arguments.at(-1)))return{src:e,marked:!0};let r=e.slice(n.start,n.end),a=r.replace(/^export\s+default\b/,"").trim().replace(/;$/,"");if(a===r)return{src:e,marked:!1,reason:"\u9ED8\u8BA4\u5BFC\u51FA\u8BED\u6CD5\u4E0D\u652F\u6301\u81EA\u52A8\u6539\u5199"};let u=/^(Function|Class)Declaration$/.test(o.type)&&o.id?`${a}
2
+ import{a as Fe,b as we,c as Pe,d as je}from"../chunks/GPGAZS3C.mjs";import{a as $e}from"../chunks/TEF5R433.mjs";import{a as Ce}from"../chunks/Y7JO7Q5F.mjs";import"../chunks/SIBBFYRW.mjs";import{a as u,b as Se,c as Ee}from"../chunks/OVN5O3EZ.mjs";import v from"node:fs";import ye from"node:os";import P from"node:path";import{execSync as me,spawnSync as ct}from"node:child_process";import{fileURLToPath as Ht}from"node:url";var te={"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"},pe={"gogocode-cli":"^0.2.28","gogocode-plugin-vue":"^1.0.29","gogocode-plugin-element":"^0.0.3"},Ie={"@vue/babel-plugin-jsx":"^1.2.5"},Te={"@element-plus/icons-vue":"^2.3.1"},ce={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"},Me=['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"],ne={"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 yt=/import\.meta\.glob\(\s*(['"])([^'"]+)\1\s*,\s*\{\s*eager\s*:\s*true\s*\}\s*\)/;function Le(e){let t=yt.exec(String(e||""));return t?t[2]:null}u(Le,"extractGlobPattern");function vt(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"}u(vt,"lazyLibState");var Re=u(e=>/'/.test(e)?JSON.stringify(e):`'${e}'`,"q"),ht=`import lazyLib from 'epx-frame/build/vite-plugin-lazy-lib.mjs'
3
+ `,kt=/^([ \t]*)frameDeps\s*\(\s*\)\s*,?[^\n]*$/m;function De(e,{glob:t,pkgName:n}){let o=String(e||""),r=vt(o);if(r!=="absent")return{src:o,status:r};let s=kt.exec(o);if(!s)return{src:o,status:"no-anchor"};let i=s[1],a=`
4
+ ${i}// \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
+ ${i}// \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
+ ${i}lazyLib({ enabled: process.env.LAZY_LIB === 'true', glob: ${Re(t)}, pkgName: ${Re(n)} }),`,c=o.slice(0,s.index+s[0].length)+a+o.slice(s.index+s[0].length),p=0;if(c.startsWith("#!")){let k=c.indexOf(`
7
+ `);p=k===-1?c.length:k+1}let d=/^([ \t]*\/\/[^\n]*\r?\n|[ \t]*\r?\n)/,x;for(;x=c.slice(p).match(d);)p+=x[0].length;return c=c.slice(0,p)+ht+c.slice(p),{src:c,status:"injected"}}u(De,"injectLazyLib");function Ve(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 r=!!(t.dependencies||{})["cross-env"],s=!!(t.devDependencies||{})["cross-env"];return!r&&!s?(n.devDependencies={...t.devDependencies||{},"cross-env":"^7.0.3"},o=!0):t.devDependencies&&(n.devDependencies={...t.devDependencies}),{pkg:n,changed:o}}u(Ve,"addLazyScripts");import{TEMPLATES as Oe}from"../epx-create/scaffold.mjs";var St=["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 Et(e){let t=e,n=!1,o=/require\.context\(\s*['"]@\/([^'"]+)['"]\s*,\s*true\s*,\s*\/\\?\.vue\$?\/\s*\)/,r=t.match(o);return r&&(t=t.replace(o,`import.meta.glob('./${r[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}}u(Et,"viteEntryCodemod");function Ne({read:e,epxFrameSpec:t,basePkgRaw:n}){let o=[],r=[],s=n||e("package.json");if(!s)return{changes:o,manual:["\u65E0 package.json\uFF0C\u65E0\u6CD5\u505A vite \u5316"],info:{}};let i;try{i=JSON.parse(s)}catch(y){return{changes:o,manual:["package.json \u89E3\u6790\u5931\u8D25\uFF1A"+y.message],info:{}}}let a=String(i.name||"").toLowerCase(),c=["src/index.js","index.js"].find(y=>e(y)!=null),p=c?e(c):"",d=/import\.meta\.glob/.test(p),x=null,k=p.match(/require\.context\(\s*['"]@\/([^'"]+)['"]/);if(k)x=k[1];else if(d){let y=p.match(/import\.meta\.glob\(\s*['"]\.\/([^/'"]+)\//);y&&(x=y[1])}x||(x=a,r.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 w=`./${x}/**/*.vue`;if(e("vite.config.mjs")!=null||e("vite.config.js")!=null||e("vite.config.ts")!=null)r.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 y=Oe["vite.config.mjs"].replaceAll("__NAME__",a).replaceAll("__DIRNAME__",x);o.push({file:"vite.config.mjs",after:y})}let A=t||i.dependencies&&i.dependencies["epx-frame"]||"^5.3.0",b=JSON.parse(Oe["package.json"].replaceAll("__NAME__",a).replaceAll("__EPX_FRAME__",A));i.runtime=b.runtime,i.scripts={...i.scripts||{},...b.scripts},i.devDependencies=i.devDependencies||{};for(let[y,h]of Object.entries(b.devDependencies))i.devDependencies[y]=h;let S=[];for(let y of["dependencies","devDependencies"])if(i[y])for(let h of Object.keys(i[y]))St.includes(h)&&(delete i[y][h],S.push(h));o.push({file:"package.json",after:JSON.stringify(i,null,2)+`
9
+ `});for(let y of["webpack.config.js","vue.config.js","babel.config.js"])e(y)!=null&&o.push({file:y,remove:!0});if(c&&/require\.context/.test(p)){let y=Et(p);y.changed?(o.push({file:c,after:y.src}),r.push(`\u5165\u53E3 ${c} \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`)):r.push(`\u5165\u53E3 ${c} \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('${w}', { eager: true }) + Object.keys(files) \u6536\u96C6\uFF0C\u5E76\u628A require('../package.json') \u6539\u6210 import\u3002`)}let f=(e("webpack.config.js")||"")+`
10
+ `+(e("vue.config.js")||"");if(/sass-resources-loader/.test(f)){let y=f.match(/resources:\s*path\.resolve\([^,]*,\s*['"]([^'"]+)['"]/);r.push(`scss \u5168\u5C40\u6CE8\u5165\uFF1A\u65E7\u914D\u7F6E\u7528 sass-resources-loader \u6CE8\u5165 ${y?"`"+y[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(f)&&/process\.env/.test(f)&&r.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 l=f.match(/url-loader[\s\S]{0,120}?limit:\s*([0-9*\s]+)/);l&&r.push(`\u65E7\u914D\u7F6E\u7528 url-loader \u5185\u8054\u5C0F\u8D44\u6E90\uFF08limit\u2248${l[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 m=f.match(/externals:\s*([^\n]+)/);if(m){let y=["recorder","echarts","xlsx","jspdf","luckysheet","pdfjs","signature"].filter(h=>new RegExp(h,"i").test(m[1]));y.length&&r.push(`\u65E7 externals \u542B\u6A21\u677F\u9ED8\u8BA4\u672A\u8986\u76D6\u7684\u5E93\uFF1A${y.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:r,info:{pkgName:a,dirName:x,glob:w,removedDeps:S}}}u(Ne,"planToVite");var $t=/import\s+(\w+)\s*,\s*\{([^}]*)\}\s*from\s*(['"])epx-frame\3/;function _e(e){let t=String(e||""),n=$t.exec(t);if(!n)return t;let[o,r,s,i]=n,a=t.slice(0,n.index)+t.slice(n.index+o.length),c=s.split(",").map(d=>d.trim()).filter(Boolean).filter(d=>{let x=d.split(/\s+as\s+/).pop().trim();return/^[A-Za-z_$][\w$]*$/.test(x)?new RegExp(`(^|[^.\\w$])${x}\\b`).test(a):!0}),p=c.length?`import ${r}, { ${c.join(", ")} } from ${i}epx-frame${i}`:`import ${r} from ${i}epx-frame${i}`;return t.slice(0,n.index)+p+t.slice(n.index+o.length)}u(_e,"collapseFrameImport");import le from"node:path";var Ct=["gogocode-plugin-vue","gogocode-plugin-element"];function Be(e,t){for(let n of e||[]){if(!n)continue;let o=le.join(n,"node_modules"),r=le.join(o,"gogocode-cli","index.js");if(t(r)&&!Ct.some(s=>!t(le.join(o,s))))return r}return null}u(Be,"findGogocode");function Ft({projectDir:e,toolDir:t,cacheDir:n}){return[e,t,n].filter(Boolean)}u(Ft,"gogocodeRoots");function ze({projectDir:e,toolDir:t,cacheDir:n,versions:o,exists:r,install:s,log:i}){let a=i||(()=>{}),c=Ft({projectDir:e,toolDir:t,cacheDir:n}),p=Be(c,r);if(p)return{cli:p,installed:!1};let d=Object.entries(o||{}).map(([k,w])=>`${k}@${w}`);if(!d.length)return{cli:null,installed:!1,error:"\u6CA1\u6709\u53EF\u5B89\u88C5\u7684 gogocode \u7248\u672C\u6E05\u5355"};a(` \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{s({cacheDir:n,specs:d})}catch(k){return{cli:null,installed:!1,error:String(k&&k.message||k).slice(0,200)}}let x=Be([n],r);return x?{cli:x,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"}}u(ze,"ensureGogocode");var wt=[".vue",".js",".jsx",".ts",".tsx"],Pt=u(e=>wt.some(t=>e.toLowerCase().endsWith(t)),"isSource");function Ue(e,t,n,o){let r=n,s=o,i=0,a=u((c,p)=>{let d;try{d=r.readdirSync(c,{withFileTypes:!0})}catch{return}for(let x of d){let k=s.join(c,x.name),w=s.join(p,x.name);x.isDirectory()?a(k,w):Pt(x.name)&&(r.mkdirSync(s.dirname(w),{recursive:!0}),r.copyFileSync(k,w),i++)}},"walk");return a(e,t),i}u(Ue,"copyBackSources");var Ge=/(install\s*=\s*function\s*\()\s*Vue\s*(\s*(?:,[^)]*)?\))/,He=/(\binstall\s*\()\s*Vue\s*(\s*(?:,[^)]*)?\)\s*\{)/;function jt(e){let t=String(e||"");return Ge.test(t)?t.replace(Ge,"$1app$2"):He.test(t)?t.replace(He,"$1app$2"):t}u(jt,"renameInstallParam");var At=u(e=>/install\s*=\s*function\s*\(\s*app\b/.test(String(e||""))||/\binstall\s*\(\s*app\b/.test(String(e||"")),"hasAppParam");function It(e){return String(e||"").replace(/\bVue\.prototype\.(\$?[\w$]+)/g,"app.config.globalProperties.$1").replace(/\bVue\.(component|use|directive|mixin|provide)\b/g,"app.$1")}u(It,"rewriteVueGlobals");function Tt(e){return String(e||"").replace(/\bwindow\.\$vueApp\b/g,"app")}u(Tt,"rewriteVueAppGlobal");function We(e){let t=jt(e);return At(t)&&(t=It(t)),t=Tt(t),t}u(We,"codemodLibEntry");var Mt=/[;,{([<>=&|?:.+\-*/]$/,Rt=/^(=>|\?|:|\.|\)|\]|\}|,|&&|\|\||\+|-|\*|\/|=)/,Lt=/[)\]\w'"`]$/;function Dt(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 r=t[o].replace(/\s+$/,"");if(!r.trimStart())continue;let i=(t.slice(o+1).find(a=>a.trim())||"").trim();i&&(Mt.test(r)||Rt.test(i)||Lt.test(r)&&(t[o]=r+";",n++))}return{val:t.join(`
13
+ `),n}}u(Dt,"fixValue");function Je(e){let t=0;return{src:e.replace(/(?:v-bind)?:([\w-]+)\.sync="([^"]*)"/g,(o,r,s)=>(t++,`v-model:${r}="${s}"`)),count:t}}u(Je,"fixSyncModifier");function qe(e){let t=0;return{src:e.replace(/((?:@|v-on:)[\w.:-]+=")([^"]*)(")/g,(o,r,s,i)=>{let a=Dt(s);return t+=a.n,r+a.val+i}),count:t}}u(qe,"fixInlineHandlers");function Xe(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()}u(Xe,"toCssClass");function Ke(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,r)=>(t++,`<i class="${Xe(r)}"></i>`)),n=n.replace(/<(ElIcon[A-Za-z0-9]+)\s*\/>/g,(o,r)=>(t++,`<i class="${Xe(r)}"></i>`)),n=n.replace(/^[ \t]*ElIcon[A-Za-z0-9]+,[ \t]*\r?\n/gm,()=>(t++,"")),{src:n,count:t}}u(Ke,"fixElIcon");var Vt=new Set(["vue","vuex","vue-router"]);function Ye(e){let t=e,n=0,o=/import\s*\*\s*as\s+([A-Za-z_$][\w$]*)\s+from\s+['"]([^'"]+)['"]\s*;?[ \t]*\r?\n?/g,r=[...t.matchAll(o)].filter(s=>Vt.has(s[2]));for(let s of r){let i=s[0],a=s[1],c=s[2],p=new RegExp("\\b"+a+"\\.([A-Za-z_$][\\w$]*)","g"),d=new Set,x;for(;x=p.exec(t);)d.add(x[1]);if(d.size===0)t=t.replace(i,"");else{let k=[...d].join(", ");t=t.replace(i,`import { ${k} } from '${c}'
14
+ `),t=t.replace(new RegExp("\\b"+a+"\\.([A-Za-z_$][\\w$]*)","g"),"$1")}n++}return{src:t,count:n}}u(Ye,"fixNamespaceImport");function Ot(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,r=[...t.matchAll(o)];for(let s of r){let i=s[0],a=s[1],c=s[2],p=s[4],d=s[5],k=s[6].match(/\\?\.([a-zA-Z0-9]+)\$?$/),w=k?"."+k[1]:".*",A=p.replace(/\/+$/,"")+(d==="true"?"/**/*":"/*")+w;t=t.replace(i,`${a}import.meta.glob('${A}', { eager: true })`),t=t.replace(new RegExp("\\b"+c+"\\.keys\\(\\)","g"),`Object.keys(${c})`),t=t.replace(new RegExp("\\b"+c+"\\(\\s*([A-Za-z_$][\\w$]*)\\s*\\)","g"),`${c}[$1]`),n++}return{src:t,count:n}}u(Ot,"fixRequireContext");function Ze(e){let t=/require\(\s*(['"])((?:@\/|\.\.?\/)[^'"]+\.(?:png|jpe?g|gif|svg|webp|bmp|ico))\1\s*\)/gi,n=new Map,o=u(a=>{if(n.has(a))return n.get(a);let p="__img_"+((a.split("/").pop()||"asset").replace(/\.[^.]+$/,"").replace(/[^A-Za-z0-9]/g,"_")||"x"),d=p,x=1,k=new Set(n.values());for(;k.has(d);)d=p+"_"+x++;return n.set(a,d),d},"mkVar"),r=0,s=e.replace(t,(a,c,p)=>(r++,o(p))),i=[...n.entries()].map(([a,c])=>`import ${c} from '${a}'`).join(`
15
+ `);return{body:s,imports:i,count:r}}u(Ze,"collectRequireAsset");function Qe(e,t={}){let n=!!t.isVue,o=0,r=!1,s=e,i=Ot(s);if(s=i.src,o+=i.count,n){let a=s.match(/(<script(?:\s[^>]*)?>)([\s\S]*?)(<\/script>)/);if(a){let c=Ze(a[2]);if(c.count){let d=`
16
+ `+c.imports+`
17
+ `+c.body.replace(/^\n?/,"");s=s.slice(0,a.index)+a[1]+d+a[3]+s.slice(a.index+a[0].length),o+=c.count}let p=s.replace(/<script(?:\s[^>]*)?>[\s\S]*?<\/script>/,"");/require\(\s*['"](?:@\/|\.\.?\/)[^'"]+\.(?:png|jpe?g|gif|svg|webp|bmp|ico)['"]\s*\)/i.test(p)&&(r=!0)}}else{let a=Ze(s);a.count&&(s=a.imports+`
18
+ `+a.body,o+=a.count)}return{src:s,count:o,templateAsset:r}}u(Qe,"viteSourceCodemod");function et(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,(s,i)=>(n++,"on"+i+"=")),t=t.replace(/\bscopedSlots=\{\{/g,()=>(n++,"v-slots={{"));let o=[],r=t.search(/<script\b/);if(r>=0){let s={};for(let i of t.slice(r).matchAll(/\bslot=["']([^"']+)["']/g))s[i[1]]=(s[i[1]]||0)+1;for(let i of Object.keys(s))o.push(`JSX \u5177\u540D\u63D2\u69FD slot="${i}" \xD7${s[i]} \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}}u(et,"fixJsxVue2");var nt=Se(Ee(),1);var Nt=u(e=>e&&!e.computed&&(e.key?.name==="runtime"||e.key?.value==="runtime"),"isRuntime"),tt=u(e=>e?.type==="ObjectExpression"&&Nt(e.properties.at(-1))&&e.properties.at(-1).value?.value==="vue3","hasVue3");function ot(e){try{let t=(0,nt.parse)(e,{sourceType:"module",plugins:["jsx"]}),n=t.program.body.find(d=>d.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,r=t.program.body[t.program.body.indexOf(n)-1]?.expression;if(o.type==="Identifier"&&r?.type==="AssignmentExpression"&&r.left.type==="MemberExpression"&&!r.left.computed&&r.left.object.name===o.name&&r.left.property.name==="runtime"&&r.right.value==="vue3")return{src:e,marked:!0};let s=o.type==="CallExpression"&&o.callee.type==="MemberExpression"&&!o.callee.computed&&o.callee.object.name==="Object"&&o.callee.property.name==="assign";if(tt(o)||s&&tt(o.arguments.at(-1)))return{src:e,marked:!0};let i=e.slice(n.start,n.end),a=i.replace(/^export\s+default\b/,"").trim().replace(/;$/,"");if(a===i)return{src:e,marked:!1,reason:"\u9ED8\u8BA4\u5BFC\u51FA\u8BED\u6CD5\u4E0D\u652F\u6301\u81EA\u52A8\u6539\u5199"};let c=/^(Function|Class)Declaration$/.test(o.type)&&o.id?`${a}
19
19
  ${o.id.name}.runtime = 'vue3'
20
- export default ${o.id.name}`:`export default Object.assign(${a}, { runtime: 'vue3' })`;return{src:e.slice(0,n.start)+u+";"+e.slice(n.end),marked:!0}}catch(t){return{src:e,marked:!1,reason:t.message}}}l(et,"markLibraryRuntime");var X=Ee($e(),1);var K={"@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/components",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/components/add-form":{package:"@epxing/components",exports:{default:["AddForm"]}},"@epxing/components/add-form-item":{package:"@epxing/components",exports:{default:["AddFormItem"]}},"@epxing/components/ai-import-page":{package:"@epxing/components",exports:{default:["AiImportPage"]}},"@epxing/components/ai-import":{package:"@epxing/components",exports:{default:["AiImport"]}},"@epxing/components/ai-agent-page":{package:"@epxing/components",exports:{default:["AiAgentPage"]}},"@epxing/components/ai-chat-page":{package:"@epxing/components",exports:{default:["AiChatPage"]}},"@epxing/components/wiki-site":{package:"@epxing/components",exports:{default:["WikiSite"]}},"@epxing/components/ai-metadata-assistant":{package:"@epxing/components",exports:{default:["AiMetadataAssistant"]}},"@epxing/components/alert":{package:"@epxing/components",exports:{default:["Alert"]}},"@epxing/components/app-index":{package:"@epxing/components",exports:{default:["AppIndex"]}},"@epxing/components/app-nav":{package:"@epxing/components",exports:{default:["AppNav"]}},"@epxing/components/app-tabs":{package:"@epxing/components",exports:{default:["AppTabs"]}},"@epxing/components/apply-form":{package:"@epxing/components",exports:{default:["ApplyForm"]}},"@epxing/components/approval-index":{package:"@epxing/components",exports:{default:["ApprovalIndex"]}},"@epxing/components/approval-index-page":{package:"@epxing/components",exports:{default:["ApprovalIndexPage"]}},"@epxing/components/base-page":{package:"@epxing/components",exports:{default:["BasePage"]}},"@epxing/components/button":{package:"@epxing/components",exports:{default:["Button"]}},"@epxing/components/card":{package:"@epxing/components",exports:{default:["Card"]}},"@epxing/components/card-form-item":{package:"@epxing/components",exports:{default:["CardFormItem"]}},"@epxing/components/act-process-form-item":{package:"@epxing/components",exports:{default:["ActProcessFormItem"]}},"@epxing/components/carousel":{package:"@epxing/components",exports:{default:["Carousel"]}},"@epxing/components/category-list":{package:"@epxing/components",exports:{default:["CategoryList"]}},"@epxing/components/report-chart":{package:"@epxing/components",exports:{default:["ReportChart"]}},"@epxing/components/chart":{package:"@epxing/components",exports:{default:["Chart"]}},"@epxing/components/check-history":{package:"@epxing/components",exports:{default:["CheckHistory"]}},"@epxing/components/collapse":{package:"@epxing/components",exports:{default:["Collapse"]}},"@epxing/components/color-picker":{package:"@epxing/components",exports:{default:["ColorPicker"]}},"@epxing/components/component":{package:"@epxing/components",exports:{default:["Component"]}},"@epxing/components/contacts":{package:"@epxing/components",exports:{default:["Contacts"]}},"@epxing/components/div":{package:"@epxing/components",exports:{default:["Div"]}},"@epxing/components/dropdown":{package:"@epxing/components",exports:{default:["Dropdown"]}},"@epxing/components/edit-entity-list":{package:"@epxing/components",exports:{default:["EditEntityList"]}},"@epxing/components/empty":{package:"@epxing/components",exports:{default:["Empty"]}},"@epxing/components/entity-add-page":{package:"@epxing/components",exports:{default:["EntityAddPage"]}},"@epxing/components/entity-apply-page":{package:"@epxing/components",exports:{default:["EntityApplyPage"]}},"@epxing/components/entity-card-list":{package:"@epxing/components",exports:{default:["EntityCardList"]}},"@epxing/components/entity-list":{package:"@epxing/components",exports:{default:["EntityList"],Mobile:["EntityList","Mobile"]}},"@epxing/components/entity-list-find":{package:"@epxing/components",exports:{default:["EntityListFind"]}},"@epxing/components/entity-list-find-page":{package:"@epxing/components",exports:{default:["EntityListFindPage"]}},"@epxing/components/entity-list-page":{package:"@epxing/components",exports:{default:["EntityListPage"]}},"@epxing/components/entity-no-submit-sub-list":{package:"@epxing/components",exports:{default:["EntityNoSubmitSubList"]}},"@epxing/components/entity-sub-grid":{package:"@epxing/components",exports:{default:["EntitySubGrid"],EntitySubGridItem:["EntitySubGridItem"]}},"@epxing/components/entity-sub-list":{package:"@epxing/components",exports:{default:["EntitySubList"]}},"@epxing/components/entity-tree-find":{package:"@epxing/components",exports:{default:["EntityTreeFind"]}},"@epxing/components/entity-tree-find-page":{package:"@epxing/components",exports:{default:["EntityTreeFindPage"]}},"@epxing/components/entity-virtual-list":{package:"@epxing/components",exports:{default:["EntityVirtualList"]}},"@epxing/components/export":{package:"@epxing/components",exports:{default:["Export"]}},"@epxing/components/export-file":{package:"@epxing/components",exports:{default:["ExportFile"]}},"@epxing/components/flow-num":{package:"@epxing/components",exports:{default:["FlowNumStatistic"]}},"@epxing/components/footer":{package:"@epxing/components",exports:{default:["Footer"]}},"@epxing/components/form":{package:"@epxing/components",exports:{default:["Form"]}},"@epxing/components/form-item":{package:"@epxing/components",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-field":{package:"@epxing/components",exports:{default:["FormField"]}},"@epxing/components/formula":{package:"@epxing/components",exports:{default:["Formula"]}},"@epxing/components/formula-editor":{package:"@epxing/components",exports:{default:["FormulaEditor"]}},"@epxing/components/gauge":{package:"@epxing/components",exports:{default:["Gauge"]}},"@epxing/components/grid":{package:"@epxing/components",exports:{default:["Grid"],GridItem:["GridItem"]}},"@epxing/components/header":{package:"@epxing/components",exports:{default:["Header"],Breadcrumb:["HeaderBreadcrumb"]}},"@epxing/components/html":{package:"@epxing/components",exports:{default:["Html"]}},"@epxing/components/tab-tags":{package:"@epxing/components",exports:{default:["TabTags"]}},"@epxing/components/tabs-bar":{package:"@epxing/components",exports:{default:["TabsBar"]}},"@epxing/components/app-settings":{package:"@epxing/components",exports:{default:["AppSettings"]}},"@epxing/components/icon":{package:"@epxing/components",exports:{default:["Icon"]}},"@epxing/components/iframe":{package:"@epxing/components",exports:{default:["Iframe"]}},"@epxing/components/image":{package:"@epxing/components",exports:{default:["Image"]}},"@epxing/components/import":{package:"@epxing/components",exports:{default:["Import"]}},"@epxing/components/import-file":{package:"@epxing/components",exports:{default:["ImportFile"]}},"@epxing/components/layout":{package:"@epxing/components",exports:{default:["LayoutComponent"]}},"@epxing/components/link":{package:"@epxing/components",exports:{default:["Link"]}},"@epxing/components/list":{package:"@epxing/components",exports:{default:["List"]}},"@epxing/components/load-page":{package:"@epxing/components",exports:{default:["LoadPage"]}},"@epxing/components/login":{package:"@epxing/components",exports:{default:["Login"]}},"@epxing/components/m-entity-add-page":{package:"@epxing/components",exports:{default:["MEntityAddPage"]}},"@epxing/components/m-entity-dept-find":{package:"@epxing/components",exports:{default:["MEntityDeptFind"]}},"@epxing/components/m-entity-list":{package:"@epxing/components",exports:{default:["MEntityList"]}},"@epxing/components/m-entity-list-find":{package:"@epxing/components",exports:{default:["MEntityListFind"]}},"@epxing/components/m-entity-no-submit-sub-list":{package:"@epxing/components",exports:{default:["MEntityNoSubmitSubList"]}},"@epxing/components/m-entity-tree-find":{package:"@epxing/components",exports:{default:["MEntityTreeFind"]}},"@epxing/components/m-entity-user-find":{package:"@epxing/components",exports:{default:["MEntityUserFind"]}},"@epxing/components/m-entity-sub-list":{package:"@epxing/components",exports:{default:["MEntitySubList"]}},"@epxing/components/menu":{package:"@epxing/components",exports:{default:["Menu"],MenuItem:["MenuItem"]}},"@epxing/components/menu-index":{package:"@epxing/components",exports:{default:["MenuIndex"]}},"@epxing/components/mine":{package:"@epxing/components",exports:{default:["Mine"]}},"@epxing/components/module-index-page":{package:"@epxing/components",exports:{default:["ModuleIndexPage"]}},"@epxing/components/module-list":{package:"@epxing/components",exports:{default:["ModuleList"]}},"@epxing/components/module-list-page":{package:"@epxing/components",exports:{default:["ModuleListPage"]}},"@epxing/components/module-tabs-page":{package:"@epxing/components",exports:{default:["ModuleTabsPage"]}},"@epxing/components/nav-add-form":{package:"@epxing/components",exports:{default:["NavAddForm"]}},"@epxing/components/num":{package:"@epxing/components",exports:{default:["CardNum"],Statistic:["NumStatistic"],NumItem:["NumItem"],NumSubItem:["NumSubItem"]}},"@epxing/components/org-chart":{package:"@epxing/components",exports:{default:["OrgChart"]}},"@epxing/components/page":{package:"@epxing/components",exports:{default:["Page"]}},"@epxing/components/page-help":{package:"@epxing/components",exports:{default:["PageHelp"]}},"@epxing/components/page-tabs":{package:"@epxing/components",exports:{default:["PageTabs"]}},"@epxing/components/pagination":{package:"@epxing/components",exports:{default:["Pagination"]}},"@epxing/components/progress":{package:"@epxing/components",exports:{default:["Progress"]}},"@epxing/components/progress-chart":{package:"@epxing/components",exports:{default:["ProcessChart"]}},"@epxing/components/report":{package:"@epxing/components",exports:{default:["Report"]}},"@epxing/components/report-html":{package:"@epxing/components",exports:{default:["ReportHtml"]}},"@epxing/components/report-preview":{package:"@epxing/components",exports:{default:["ReportPreview"]}},"@epxing/components/router-view":{package:"@epxing/components",exports:{default:["RouterView"]}},"@epxing/components/scope":{package:"@epxing/components",exports:{default:["ScopeComponent"]}},"@epxing/components/search":{package:"@epxing/components",exports:{default:["Search"]}},"@epxing/components/search-bar":{package:"@epxing/components",exports:{default:["SearchBar"]}},"@epxing/components/search-list":{package:"@epxing/components",exports:{default:["SearchList"]}},"@epxing/components/step":{package:"@epxing/components",exports:{default:["Step"]}},"@epxing/components/step-item":{package:"@epxing/components",exports:{default:["StepItem"]}},"@epxing/components/tab-bar":{package:"@epxing/components",exports:{default:["TabBar"]}},"@epxing/components/tabs":{package:"@epxing/components",exports:{default:["Tabs"]}},"@epxing/components/tag":{package:"@epxing/components",exports:{default:["Tag"]}},"@epxing/components/task-list":{package:"@epxing/components",exports:{default:["TaskList"]}},"@epxing/components/task-list-page":{package:"@epxing/components",exports:{default:["TaskListPage"]}},"@epxing/components/template":{package:"@epxing/components",exports:{default:["Template"]}},"@epxing/components/text":{package:"@epxing/components",exports:{default:["Text"]}},"@epxing/components/text-editor":{package:"@epxing/components",exports:{default:["TextEditor"]}},"@epxing/components/title":{package:"@epxing/components",exports:{default:["Title"]}},"@epxing/components/update-form":{package:"@epxing/components",exports:{default:["UpdateForm"]}},"@epxing/components/update-form-item":{package:"@epxing/components",exports:{default:["UpdateFormItem"]}},"@epxing/components/update-sub-list":{package:"@epxing/components",exports:{default:["UpdateSubList"]}},"@epxing/components/video":{package:"@epxing/components",exports:{default:["Video"]}},"@epxing/components/config-page":{package:"@epxing/components",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,i,s]=t,r=Number(n)*1e6+Number(o)*1e3+Number(i);return r!==5003e3?r>5003e3:!s||/^beta\.(\d+)$/.test(s)&&Number(s.slice(5))>=2}l(le,"usesAutomaticStyles");var ue=["@epxing/core/style.css","@epxing/components/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/components":"__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/components'
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/components'
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":Vt};if(!le(t)){let o=ue.map(i=>`import '${i}'`).join(`
126
- `);for(let i of["src/main.js","PRODUCT-GUIDE.md"])n[i]=n[i].replace("import '@epxing/theme'",`import '@epxing/theme'
127
- `+o)}return n}l(nt,"createPackageTemplates");var Vt=`# \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
- \u521B\u5EFA\u6216\u5347\u7EA7\u65F6\u4E0D\u586B\u7248\u672C\uFF0CCLI \u81EA\u52A8\u9009\u62E9\u6700\u65B0 beta\uFF08\u6CA1\u6709 beta \u65F6\u4F7F\u7528 latest\uFF09\uFF0C\u5E76\u5C06\u5177\u4F53\u7248\u672C\u5199\u5165\u4F9D\u8D56\u3002\u9700\u8981\u590D\u73B0\u6307\u5B9A\u7248\u672C\u65F6\u4F7F\u7528 --packages-version\uFF1B\u57FA\u7840\u7EC4\u4EF6\u7EDF\u4E00\u4ECE @epxing/components \u5BFC\u5165\u3002
134
-
135
- ## \u5B89\u88C5\u4E0E\u542F\u52A8
136
-
137
- \`\`\`sh
138
- npm install --registry https://registry.npmjs.org/
139
- npm run dev
140
- \`\`\`
141
-
142
- \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
143
-
144
- ## \u5E94\u7528\u5165\u53E3
145
-
146
- \`\`\`js
147
- import { createApp } from '@epxing/core'
148
- import Components from '@epxing/components'
149
- import Business from '@epxing/business'
150
- import '@epxing/theme'
151
- import App from './App.vue'
152
- import product from './index'
153
-
154
- const app = createApp({ rootComponent: App })
155
- app.use(Components)
156
- app.use(Business)
157
- app.use(product)
158
- app.mount('#app')
159
- \`\`\`
160
-
161
- 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
162
-
163
- \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
164
-
165
- \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
166
-
167
- \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
168
-
169
- ## \u7EC4\u4EF6\u4E0E\u5DE5\u5177
170
-
171
- \`\`\`js
172
- import { EntityList, AddForm, AddFormItem } from '@epxing/components'
173
- import { UserFind, EntityTreeManage } from '@epxing/business'
174
- import { mixins, getSystemMeta, getFileUrl, http, createFieldFactory } from '@epxing/core'
175
- import { cloneDeep, moment, resolvePlaceholders, storage } from '@epxing/utils'
176
-
177
- export default {
178
- name: 'epx-__NAME__-employee-list',
179
- extends: EntityList,
180
- metaId: '\u4EA7\u54C1\u5B9E\u9645\u5143\u6570\u636EID',
181
- pageSize: 20
182
- }
183
- \`\`\`
184
-
185
- \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
186
-
187
- \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
188
-
189
- \u5404\u5305 API.md \u968F\u5B89\u88C5\u5305\u63D0\u4F9B\uFF0C\u53EF\u5728 node_modules/@epxing/<\u5305\u540D>/API.md \u67E5\u770B\u3002\u57FA\u7840\u7EC4\u4EF6\u7EDF\u4E00\u4F7F\u7528 @epxing/components\uFF0C\u65B0\u4EE3\u7801\u4F7F\u7528\u6839\u5BFC\u51FA\u53CA\u7A33\u5B9A\u5B50\u8DEF\u5F84\u3002
190
-
191
- ## \u72EC\u7ACB\u5E94\u7528\u4E0E\u8FDC\u7A0B\u4EA7\u54C1\u5E93
192
-
193
- \`\`\`sh
194
- npm run build:app # dist/\uFF1A\u72EC\u7ACB\u5E94\u7528\uFF0C\u4F7F\u7528 npm \u5305
195
- npx epxing lib # lib/\uFF1A\u9ED8\u8BA4\u6309\u9700\u4EA7\u54C1\u5E93
196
- npx epxing lib --full # lib/\uFF1A\u5B8C\u6574\u4EA7\u54C1\u5E93
197
- npm run build:lib # \u76F4\u63A5 Vite \u5B8C\u6574\u5E93\u6784\u5EFA
198
- npm run build:lib:lazy # \u663E\u5F0F\u6309\u9700\u5E93\u6784\u5EFA
199
- \`\`\`
200
-
201
- 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
202
-
203
- \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
204
-
205
- \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
206
-
207
- ## \u5B58\u91CF\u4EA7\u54C1\u5347\u7EA7
208
-
209
- \`\`\`sh
210
- epxing migrate .
211
- epxing migrate . --apply
212
- epxing migrate . --transform-vue --to-vite --apply
213
- # \u56FA\u5B9A\u5230\u5F53\u524D\u7248\u672C\uFF1Aepxing migrate . --packages-version __PACKAGES_VERSION__
214
- \`\`\`
215
-
216
- \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
217
-
218
- 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
219
-
220
- ## \u66F4\u65B0\u7248\u672C
221
-
222
- \`\`\`sh
223
- npm install -g @epxing/cli@beta --registry https://registry.npmjs.org/
224
- epxing --version
225
- \`\`\`
226
-
227
- \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
228
- `;var Nt=["core","components","utils","business","designer"],J=new Map;for(let e of Nt)for(let t of Object.keys(K["@epxing/"+e].exports))["default","install"].includes(t)||(J.has(t)||J.set(t,[]),J.get(t).push({source:"@epxing/"+e,name:t}));for(let e of["Dashboard","DashboardTabs","DashboardTitle","DashboardDiv","DashboardWidget"])J.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"}},me=l(e=>Ot[e]||(J.get(e)?.length===1?J.get(e)[0]:null),"fromRoot"),N=l((e,t,n)=>{if(!(!e||typeof e!="object")){e.type&&t(e,n);for(let[o,i]of Object.entries(e))["loc","leadingComments","trailingComments","innerComments","extra"].includes(o)||(Array.isArray(i)?i.forEach(s=>N(s,t,e)):i&&typeof i=="object"&&N(i,t,e))}},"walk"),Bt=l(e=>e?.key?.name??e?.key?.value,"keyOf"),ot=l(e=>/^(?:epx-frame(?:\/|$)|@epx\/)/.test(e),"oldRoot"),U=l(e=>e.replace(/^@epx\//,"@epxing/").replace(/^@epxing\/component(?=\/|$)/,"@epxing/components"),"canonical"),q=new Map;for(let[e,t]of Object.entries(tt))for(let[n,o]of Object.entries(t))q.set(`@epxing/${e}/src/${o}`,`@epxing/${e}/${n}`);for(let[e,t]of Object.entries(K)){if(!e.startsWith("@epxing/components/"))continue;let n=e.slice(19);q.set("@epxing/components/src/"+n,e);let o=t.exports.default?.[0];o&&q.set(`@epxing/components/src/${n}/${o}`,e)}for(let[e,t]of Object.entries({util:"util",meta:"meta",fieldFactory:"field-factory","pdf.viewer":"pdf-viewer"}))q.set("@epxing/utils/src/"+e,"@epxing/core/"+t);function Ut(e){if(/^@epxing\/component(?:\/|$)/.test(e)&&!e.includes("/src/"))return U(e);if(/^epx-frame\/(core|components|business|designer|dashboard|utils)$/.test(e))return U(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=U(e).replace(/\.(?:vue|js|jsx|mjs)$/,"").replace(/\/index$/,"");return q.has(n)?q.get(n):/^@epxing\/theme\/src\//.test(e)||e.startsWith("@epx/")&&!n.includes("/src/")?U(e):null}l(Ut,"moduleTarget");function st(e,{filename:t,bootstrap:n,packagesVersion:o}){let i=[],s=[],r=new Set,a=new Set,u=new Set,p;try{p=(0,X.parse)(e,{sourceType:"unambiguous",plugins:["jsx","typescript","decorators-legacy","importAttributes"]})}catch(x){return{source:e,manual:[`${t} \u65E0\u6CD5\u9759\u6001\u89E3\u6790\uFF1A${x.message}`],blocked:!0}}let d=new Set;N(p,x=>{x.type==="Identifier"&&d.add(x.name)});let y=l(x=>{let h="__epx"+x;for(;d.has(h);)h+="_";return d.add(h),h},"unique");function S(x,h,c=!1){x.source==="@epxing/core/runtime"&&["runtimeStore","runtimeRouter"].includes(x.name)&&u.add(h);let g=x.name==="*"?`* as ${h}`:`{ ${c?"type ":""}${x.name}${x.name===h?"":" as "+h} }`;r.add(`import ${g} from '${x.source}'`)}l(S,"addImport");function A(x,h,c){let g=[],b=[];if(N(p,(k,E)=>{if(!(!["Identifier","JSXIdentifier"].includes(k.type)||k.name!==x||k.start>=c.start&&k.end<=c.end))if((E?.type==="MemberExpression"||E?.type==="OptionalMemberExpression")&&E.object===k){let $=E.computed?E.property.type==="StringLiteral"?E.property.value:null:E.property.name,R=$&&h($);R?g.push({node:E,target:R,property:$}):b.push($||"\u52A8\u6001\u5C5E\u6027")}else b.push("\u76F4\u63A5\u5F15\u7528\u6216\u540C\u540D\u5C40\u90E8\u7ED1\u5B9A")}),b.length){i.push(`${t}\uFF1A${x} \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 f=new Map;for(let k of g){let E=k.target.source+":"+k.target.name;if(!f.has(E)){let $=y(k.property);S(k.target,$),f.set(E,$)}s.push({start:k.node.start,end:k.node.end,text:f.get(E)}),k.target.name==="createApp"&&a.add(k.node)}}l(A,"namespace");for(let x of p.program.body){if(!["ImportDeclaration","ExportNamedDeclaration","ExportAllDeclaration"].includes(x.type)||!x.source)continue;let h=x.source.value,c=h==="epx-frame",g=Ut(h);if(c||ot(h)||/^@epxing\/component(?:\/|$)/.test(h)||h.startsWith("@epxing/")&&h.includes("/src/")){if(!c&&!g){i.push(`${t}\uFF1A\u5C1A\u65E0\u516C\u5F00\u6620\u5C04 ${h}\uFF0C\u9700\u6539\u7528\u5BF9\u5E94\u5305\u516C\u5F00 API\u3002`);continue}if(x.type!=="ImportDeclaration"){if(c||typeof g=="object"){i.push(`${t}\uFF1A${h} \u7684\u91CD\u5BFC\u51FA\u9700\u4EBA\u5DE5\u62C6\u5206\u3002`);continue}s.push({start:x.source.start,end:x.source.end,text:JSON.stringify(g)});continue}if(!x.specifiers.length){c||typeof g=="object"?i.push(`${t}\uFF1A\u526F\u4F5C\u7528\u5BFC\u5165 ${h} \u65E0\u6CD5\u6620\u5C04\u3002`):s.push({start:x.source.start,end:x.source.end,text:JSON.stringify(g)});continue}for(let f of x.specifiers){let k=f.local.name;if(c||g==="@epxing/utils"&&f.type!=="ImportSpecifier")if(f.type!=="ImportSpecifier")A(k,E=>g==="@epxing/utils"&&K["@epxing/utils"].exports[E]?{source:"@epxing/utils",name:E}:me(E),x);else{let E=f.imported.name||f.imported.value,$=me(E);if(!$){i.push(`${t}\uFF1A\u65E7\u6839\u5BFC\u51FA ${E} \u4E0D\u552F\u4E00\u6216\u5C1A\u672A\u516C\u5F00\uFF0C\u9700\u4EBA\u5DE5\u9009\u62E9\u3002`);continue}S($,k,x.importKind==="type"||f.importKind==="type"),$.name==="createApp"&&a.add(k)}else{let E=typeof g=="string"?{source:g}:g,$=f.type==="ImportDefaultSpecifier"?E.defaultName||"default":f.type==="ImportNamespaceSpecifier"?"*":f.imported.name||f.imported.value;if(E.source==="@epxing/utils"&&f.type==="ImportSpecifier"&&!K["@epxing/utils"].exports[$]){let R=me($);R?S(R,k):i.push(`${t}\uFF1Autils \u7684\u65E7\u5BFC\u51FA ${$} \u5C1A\u65E0\u786E\u5B9A\u6620\u5C04\u3002`);continue}$==="default"?r.add(`import ${k} from '${E.source}'`):S({source:E.source,name:$},k,x.importKind==="type"||f.importKind==="type"),$==="createApp"&&E.source==="@epxing/core"&&a.add(k)}}s.push({start:x.start,end:x.end,text:""})}}if(N(p,(x,h)=>{x.type!=="StringLiteral"||!ot(x.value)||h?.type==="ImportDeclaration"||/Export/.test(h?.type||"")||h?.type==="CallExpression"&&(h.callee.type==="Import"||h.callee.name==="require")&&i.push(`${t}\uFF1A\u52A8\u6001\u5BFC\u5165/require ${x.value} \u9700\u8981\u4EBA\u5DE5\u6539\u5199\u3002`)}),n&&a.size){let x=!1,h=1/0;N(p,c=>{if(c.type==="VariableDeclaration")for(let g of c.declarations){let b=g.init;if(b?.type!=="CallExpression"||g.id.type!=="Identifier"||!a.has(b.callee)&&!a.has(b.callee?.name))continue;let f=g.id.name;if(h=Math.min(h,b.start),!b.arguments.length){let $=y("CreateFrameRouter");S({source:"@epxing/core",name:"createFrameRouter"},$),s.push({start:b.end-1,end:b.end-1,text:`{ router: ${$}() }`})}let k=y("Components"),E=y("Business");r.add(`import ${k} from '@epxing/components'`),r.add(`import ${E} from '@epxing/business'`);for(let $ of["@epxing/theme",...le(o)?[]:ue])!e.includes(`'${$}'`)&&!e.includes(`"${$}"`)&&r.add(`import '${$}'`);s.push({start:c.end,end:c.end,text:`
229
- ${f}.use(${k})
230
- ${f}.use(${E})
231
- `}),x=!0}}),x||i.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`),N(p,(c,g)=>{c.type==="Identifier"&&u.has(c.name)&&c.start<h&&g?.type==="MemberExpression"&&g.object===c&&i.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(i.length)return{source:e,manual:i,blocked:!0};s.sort((x,h)=>h.start-x.start||h.end-x.end);let j=e;for(let x of s)j=j.slice(0,x.start)+x.text+j.slice(x.end);r.size&&(j=[...r].join(`
20
+ export default ${o.id.name}`:`export default Object.assign(${a}, { runtime: 'vue3' })`;return{src:e.slice(0,n.start)+c+";"+e.slice(n.end),marked:!0}}catch(t){return{src:e,marked:!1,reason:t.message}}}u(ot,"markLibraryRuntime");var Y=Se(Ee(),1);var K={"@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/components",exports:{install:["install"],AddForm:["AddForm"],AddFormItem:["AddFormItem"],AiImportPage:["AiImportPage"],AiImport:["AiImport"],AiAgentPage:["AiAgentPage"],AiCallMethod:["AiCallMethod"],AiCallMethodCreate:["AiCallMethodCreate"],DbSourceCreate:["DbSourceCreate"],DbTableBrowser:["DbTableBrowser"],MetaFromDatabase:["MetaFromDatabase"],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"],App:["App"],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/app":{package:"@epxing/business",exports:{default:["App"]}},"@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/components/add-form":{package:"@epxing/components",exports:{default:["AddForm"]}},"@epxing/components/add-form-item":{package:"@epxing/components",exports:{default:["AddFormItem"]}},"@epxing/components/ai-import-page":{package:"@epxing/components",exports:{default:["AiImportPage"]}},"@epxing/components/ai-import":{package:"@epxing/components",exports:{default:["AiImport"]}},"@epxing/components/ai-agent-page":{package:"@epxing/components",exports:{default:["AiAgentPage"]}},"@epxing/components/ai-call-method":{package:"@epxing/components",exports:{default:["AiCallMethod"]}},"@epxing/components/ai-call-method/AiCallMethodCreate.vue":{package:"@epxing/components",exports:{default:["AiCallMethodCreate"]}},"@epxing/components/db-source-create/DbSourceCreate.vue":{package:"@epxing/components",exports:{default:["DbSourceCreate"]}},"@epxing/components/db-table-browser/DbTableBrowser.vue":{package:"@epxing/components",exports:{default:["DbTableBrowser"]}},"@epxing/components/meta-from-database/MetaFromDatabase.vue":{package:"@epxing/components",exports:{default:["MetaFromDatabase"]}},"@epxing/components/ai-chat-page":{package:"@epxing/components",exports:{default:["AiChatPage"]}},"@epxing/components/wiki-site":{package:"@epxing/components",exports:{default:["WikiSite"]}},"@epxing/components/ai-metadata-assistant":{package:"@epxing/components",exports:{default:["AiMetadataAssistant"]}},"@epxing/components/alert":{package:"@epxing/components",exports:{default:["Alert"]}},"@epxing/components/app-index":{package:"@epxing/components",exports:{default:["AppIndex"]}},"@epxing/components/app-nav":{package:"@epxing/components",exports:{default:["AppNav"]}},"@epxing/components/app-tabs":{package:"@epxing/components",exports:{default:["AppTabs"]}},"@epxing/components/apply-form":{package:"@epxing/components",exports:{default:["ApplyForm"]}},"@epxing/components/approval-index":{package:"@epxing/components",exports:{default:["ApprovalIndex"]}},"@epxing/components/approval-index-page":{package:"@epxing/components",exports:{default:["ApprovalIndexPage"]}},"@epxing/components/base-page":{package:"@epxing/components",exports:{default:["BasePage"]}},"@epxing/components/button":{package:"@epxing/components",exports:{default:["Button"]}},"@epxing/components/card":{package:"@epxing/components",exports:{default:["Card"]}},"@epxing/components/card-form-item":{package:"@epxing/components",exports:{default:["CardFormItem"]}},"@epxing/components/act-process-form-item":{package:"@epxing/components",exports:{default:["ActProcessFormItem"]}},"@epxing/components/carousel":{package:"@epxing/components",exports:{default:["Carousel"]}},"@epxing/components/category-list":{package:"@epxing/components",exports:{default:["CategoryList"]}},"@epxing/components/report-chart":{package:"@epxing/components",exports:{default:["ReportChart"]}},"@epxing/components/chart":{package:"@epxing/components",exports:{default:["Chart"]}},"@epxing/components/check-history":{package:"@epxing/components",exports:{default:["CheckHistory"]}},"@epxing/components/collapse":{package:"@epxing/components",exports:{default:["Collapse"]}},"@epxing/components/color-picker":{package:"@epxing/components",exports:{default:["ColorPicker"]}},"@epxing/components/component":{package:"@epxing/components",exports:{default:["Component"]}},"@epxing/components/contacts":{package:"@epxing/components",exports:{default:["Contacts"]}},"@epxing/components/div":{package:"@epxing/components",exports:{default:["Div"]}},"@epxing/components/dropdown":{package:"@epxing/components",exports:{default:["Dropdown"]}},"@epxing/components/edit-entity-list":{package:"@epxing/components",exports:{default:["EditEntityList"]}},"@epxing/components/empty":{package:"@epxing/components",exports:{default:["Empty"]}},"@epxing/components/entity-add-page":{package:"@epxing/components",exports:{default:["EntityAddPage"]}},"@epxing/components/entity-apply-page":{package:"@epxing/components",exports:{default:["EntityApplyPage"]}},"@epxing/components/entity-card-list":{package:"@epxing/components",exports:{default:["EntityCardList"]}},"@epxing/components/entity-list":{package:"@epxing/components",exports:{default:["EntityList"],Mobile:["EntityList","Mobile"]}},"@epxing/components/entity-list-find":{package:"@epxing/components",exports:{default:["EntityListFind"]}},"@epxing/components/entity-list-find-page":{package:"@epxing/components",exports:{default:["EntityListFindPage"]}},"@epxing/components/entity-list-page":{package:"@epxing/components",exports:{default:["EntityListPage"]}},"@epxing/components/entity-no-submit-sub-list":{package:"@epxing/components",exports:{default:["EntityNoSubmitSubList"]}},"@epxing/components/entity-sub-grid":{package:"@epxing/components",exports:{default:["EntitySubGrid"],EntitySubGridItem:["EntitySubGridItem"]}},"@epxing/components/entity-sub-list":{package:"@epxing/components",exports:{default:["EntitySubList"]}},"@epxing/components/entity-tree-find":{package:"@epxing/components",exports:{default:["EntityTreeFind"]}},"@epxing/components/entity-tree-find-page":{package:"@epxing/components",exports:{default:["EntityTreeFindPage"]}},"@epxing/components/entity-virtual-list":{package:"@epxing/components",exports:{default:["EntityVirtualList"]}},"@epxing/components/export":{package:"@epxing/components",exports:{default:["Export"]}},"@epxing/components/export-file":{package:"@epxing/components",exports:{default:["ExportFile"]}},"@epxing/components/flow-num":{package:"@epxing/components",exports:{default:["FlowNumStatistic"]}},"@epxing/components/footer":{package:"@epxing/components",exports:{default:["Footer"]}},"@epxing/components/form":{package:"@epxing/components",exports:{default:["Form"]}},"@epxing/components/form-item":{package:"@epxing/components",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-field":{package:"@epxing/components",exports:{default:["FormField"]}},"@epxing/components/formula":{package:"@epxing/components",exports:{default:["Formula"]}},"@epxing/components/formula-editor":{package:"@epxing/components",exports:{default:["FormulaEditor"]}},"@epxing/components/gauge":{package:"@epxing/components",exports:{default:["Gauge"]}},"@epxing/components/grid":{package:"@epxing/components",exports:{default:["Grid"],GridItem:["GridItem"]}},"@epxing/components/header":{package:"@epxing/components",exports:{default:["Header"],Breadcrumb:["HeaderBreadcrumb"]}},"@epxing/components/html":{package:"@epxing/components",exports:{default:["Html"]}},"@epxing/components/tab-tags":{package:"@epxing/components",exports:{default:["TabTags"]}},"@epxing/components/tabs-bar":{package:"@epxing/components",exports:{default:["TabsBar"]}},"@epxing/components/app-settings":{package:"@epxing/components",exports:{default:["AppSettings"]}},"@epxing/components/icon":{package:"@epxing/components",exports:{default:["Icon"]}},"@epxing/components/iframe":{package:"@epxing/components",exports:{default:["Iframe"]}},"@epxing/components/image":{package:"@epxing/components",exports:{default:["Image"]}},"@epxing/components/import":{package:"@epxing/components",exports:{default:["Import"]}},"@epxing/components/import-file":{package:"@epxing/components",exports:{default:["ImportFile"]}},"@epxing/components/layout":{package:"@epxing/components",exports:{default:["LayoutComponent"]}},"@epxing/components/link":{package:"@epxing/components",exports:{default:["Link"]}},"@epxing/components/list":{package:"@epxing/components",exports:{default:["List"]}},"@epxing/components/load-page":{package:"@epxing/components",exports:{default:["LoadPage"]}},"@epxing/components/login":{package:"@epxing/components",exports:{default:["Login"]}},"@epxing/components/m-entity-add-page":{package:"@epxing/components",exports:{default:["MEntityAddPage"]}},"@epxing/components/m-entity-dept-find":{package:"@epxing/components",exports:{default:["MEntityDeptFind"]}},"@epxing/components/m-entity-list":{package:"@epxing/components",exports:{default:["MEntityList"]}},"@epxing/components/m-entity-list-find":{package:"@epxing/components",exports:{default:["MEntityListFind"]}},"@epxing/components/m-entity-no-submit-sub-list":{package:"@epxing/components",exports:{default:["MEntityNoSubmitSubList"]}},"@epxing/components/m-entity-tree-find":{package:"@epxing/components",exports:{default:["MEntityTreeFind"]}},"@epxing/components/m-entity-user-find":{package:"@epxing/components",exports:{default:["MEntityUserFind"]}},"@epxing/components/m-entity-sub-list":{package:"@epxing/components",exports:{default:["MEntitySubList"]}},"@epxing/components/menu":{package:"@epxing/components",exports:{default:["Menu"],MenuItem:["MenuItem"]}},"@epxing/components/menu-index":{package:"@epxing/components",exports:{default:["MenuIndex"]}},"@epxing/components/mine":{package:"@epxing/components",exports:{default:["Mine"]}},"@epxing/components/module-index-page":{package:"@epxing/components",exports:{default:["ModuleIndexPage"]}},"@epxing/components/module-list":{package:"@epxing/components",exports:{default:["ModuleList"]}},"@epxing/components/module-list-page":{package:"@epxing/components",exports:{default:["ModuleListPage"]}},"@epxing/components/module-tabs-page":{package:"@epxing/components",exports:{default:["ModuleTabsPage"]}},"@epxing/components/nav-add-form":{package:"@epxing/components",exports:{default:["NavAddForm"]}},"@epxing/components/num":{package:"@epxing/components",exports:{default:["CardNum"],Statistic:["NumStatistic"],NumItem:["NumItem"],NumSubItem:["NumSubItem"]}},"@epxing/components/org-chart":{package:"@epxing/components",exports:{default:["OrgChart"]}},"@epxing/components/page":{package:"@epxing/components",exports:{default:["Page"]}},"@epxing/components/page-help":{package:"@epxing/components",exports:{default:["PageHelp"]}},"@epxing/components/page-tabs":{package:"@epxing/components",exports:{default:["PageTabs"]}},"@epxing/components/pagination":{package:"@epxing/components",exports:{default:["Pagination"]}},"@epxing/components/progress":{package:"@epxing/components",exports:{default:["Progress"]}},"@epxing/components/progress-chart":{package:"@epxing/components",exports:{default:["ProcessChart"]}},"@epxing/components/report":{package:"@epxing/components",exports:{default:["Report"]}},"@epxing/components/report-html":{package:"@epxing/components",exports:{default:["ReportHtml"]}},"@epxing/components/report-preview":{package:"@epxing/components",exports:{default:["ReportPreview"]}},"@epxing/components/router-view":{package:"@epxing/components",exports:{default:["RouterView"]}},"@epxing/components/scope":{package:"@epxing/components",exports:{default:["ScopeComponent"]}},"@epxing/components/search":{package:"@epxing/components",exports:{default:["Search"]}},"@epxing/components/search-bar":{package:"@epxing/components",exports:{default:["SearchBar"]}},"@epxing/components/search-list":{package:"@epxing/components",exports:{default:["SearchList"]}},"@epxing/components/step":{package:"@epxing/components",exports:{default:["Step"]}},"@epxing/components/step-item":{package:"@epxing/components",exports:{default:["StepItem"]}},"@epxing/components/tab-bar":{package:"@epxing/components",exports:{default:["TabBar"]}},"@epxing/components/tabs":{package:"@epxing/components",exports:{default:["Tabs"]}},"@epxing/components/tag":{package:"@epxing/components",exports:{default:["Tag"]}},"@epxing/components/task-list":{package:"@epxing/components",exports:{default:["TaskList"]}},"@epxing/components/task-list-page":{package:"@epxing/components",exports:{default:["TaskListPage"]}},"@epxing/components/template":{package:"@epxing/components",exports:{default:["Template"]}},"@epxing/components/text":{package:"@epxing/components",exports:{default:["Text"]}},"@epxing/components/text-editor":{package:"@epxing/components",exports:{default:["TextEditor"]}},"@epxing/components/title":{package:"@epxing/components",exports:{default:["Title"]}},"@epxing/components/update-form":{package:"@epxing/components",exports:{default:["UpdateForm"]}},"@epxing/components/update-form-item":{package:"@epxing/components",exports:{default:["UpdateFormItem"]}},"@epxing/components/update-sub-list":{package:"@epxing/components",exports:{default:["UpdateSubList"]}},"@epxing/components/video":{package:"@epxing/components",exports:{default:["Video"]}},"@epxing/components/config-page":{package:"@epxing/components",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 st={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:{app:"views/App","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"}};var _t=["core","components","utils","business","designer"],q=new Map;for(let e of _t)for(let t of Object.keys(K["@epxing/"+e].exports))["default","install"].includes(t)||(q.has(t)||q.set(t,[]),q.get(t).push({source:"@epxing/"+e,name:t}));for(let e of["Dashboard","DashboardTabs","DashboardTitle","DashboardDiv","DashboardWidget"])q.set(e,[{source:"@epxing/dashboard",name:e}]);var Bt={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"}},ue=u(e=>Bt[e]||(q.get(e)?.length===1?q.get(e)[0]:null),"fromRoot"),N=u((e,t,n)=>{if(!(!e||typeof e!="object")){e.type&&t(e,n);for(let[o,r]of Object.entries(e))["loc","leadingComments","trailingComments","innerComments","extra"].includes(o)||(Array.isArray(r)?r.forEach(s=>N(s,t,e)):r&&typeof r=="object"&&N(r,t,e))}},"walk"),zt=u(e=>e?.key?.name??e?.key?.value,"keyOf"),it=u(e=>/^(?:epx-frame(?:\/|$)|@epx\/)/.test(e),"oldRoot"),U=u(e=>e.replace(/^@epx\//,"@epxing/").replace(/^@epxing\/component(?=\/|$)/,"@epxing/components"),"canonical"),X=new Map;for(let[e,t]of Object.entries(st))for(let[n,o]of Object.entries(t))X.set(`@epxing/${e}/src/${o}`,`@epxing/${e}/${n}`);for(let[e,t]of Object.entries(K)){if(!e.startsWith("@epxing/components/"))continue;let n=e.slice(19);X.set("@epxing/components/src/"+n,e);let o=t.exports.default?.[0];o&&X.set(`@epxing/components/src/${n}/${o}`,e)}for(let[e,t]of Object.entries({util:"util",meta:"meta",fieldFactory:"field-factory","pdf.viewer":"pdf-viewer"}))X.set("@epxing/utils/src/"+e,"@epxing/core/"+t);function Ut(e){if(/^@epxing\/component(?:\/|$)/.test(e)&&!e.includes("/src/"))return U(e);if(/^epx-frame\/(core|components|business|designer|dashboard|utils)$/.test(e))return U(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=U(e).replace(/\.(?:vue|js|jsx|mjs)$/,"").replace(/\/index$/,"");return X.has(n)?X.get(n):/^@epxing\/theme\/src\//.test(e)||e.startsWith("@epx/")&&!n.includes("/src/")?U(e):null}u(Ut,"moduleTarget");function rt(e,{filename:t,bootstrap:n,packagesVersion:o}){let r=[],s=[],i=new Set,a=new Set,c=new Set,p;try{p=(0,Y.parse)(e,{sourceType:"unambiguous",plugins:["jsx","typescript","decorators-legacy","importAttributes"]})}catch(b){return{source:e,manual:[`${t} \u65E0\u6CD5\u9759\u6001\u89E3\u6790\uFF1A${b.message}`],blocked:!0}}let d=new Set;N(p,b=>{b.type==="Identifier"&&d.add(b.name)});let x=u(b=>{let S="__epx"+b;for(;d.has(S);)S+="_";return d.add(S),S},"unique");function k(b,S,f=!1){b.source==="@epxing/core/runtime"&&["runtimeStore","runtimeRouter"].includes(b.name)&&c.add(S);let l=b.name==="*"?`* as ${S}`:`{ ${f?"type ":""}${b.name}${b.name===S?"":" as "+S} }`;i.add(`import ${l} from '${b.source}'`)}u(k,"addImport");function w(b,S,f){let l=[],m=[];if(N(p,(h,E)=>{if(!(!["Identifier","JSXIdentifier"].includes(h.type)||h.name!==b||h.start>=f.start&&h.end<=f.end))if((E?.type==="MemberExpression"||E?.type==="OptionalMemberExpression")&&E.object===h){let $=E.computed?E.property.type==="StringLiteral"?E.property.value:null:E.property.name,M=$&&S($);M?l.push({node:E,target:M,property:$}):m.push($||"\u52A8\u6001\u5C5E\u6027")}else m.push("\u76F4\u63A5\u5F15\u7528\u6216\u540C\u540D\u5C40\u90E8\u7ED1\u5B9A")}),m.length){r.push(`${t}\uFF1A${b} \u542B\u65E0\u6CD5\u786E\u5B9A\u7684\u8BBF\u95EE\uFF08${[...new Set(m)].join("\u3001")}\uFF09\uFF0C\u4FDD\u7559\u65E7\u5165\u53E3\uFF0C\u9700\u4EBA\u5DE5\u62C6\u5206\u3002`);return}let y=new Map;for(let h of l){let E=h.target.source+":"+h.target.name;if(!y.has(E)){let $=x(h.property);k(h.target,$),y.set(E,$)}s.push({start:h.node.start,end:h.node.end,text:y.get(E)}),h.target.name==="createApp"&&a.add(h.node)}}u(w,"namespace");for(let b of p.program.body){if(!["ImportDeclaration","ExportNamedDeclaration","ExportAllDeclaration"].includes(b.type)||!b.source)continue;let S=b.source.value,f=S==="epx-frame",l=Ut(S);if(f||it(S)||/^@epxing\/component(?:\/|$)/.test(S)||S.startsWith("@epxing/")&&S.includes("/src/")){if(!f&&!l){r.push(`${t}\uFF1A\u5C1A\u65E0\u516C\u5F00\u6620\u5C04 ${S}\uFF0C\u9700\u6539\u7528\u5BF9\u5E94\u5305\u516C\u5F00 API\u3002`);continue}if(b.type!=="ImportDeclaration"){if(f||typeof l=="object"){r.push(`${t}\uFF1A${S} \u7684\u91CD\u5BFC\u51FA\u9700\u4EBA\u5DE5\u62C6\u5206\u3002`);continue}s.push({start:b.source.start,end:b.source.end,text:JSON.stringify(l)});continue}if(!b.specifiers.length){f||typeof l=="object"?r.push(`${t}\uFF1A\u526F\u4F5C\u7528\u5BFC\u5165 ${S} \u65E0\u6CD5\u6620\u5C04\u3002`):s.push({start:b.source.start,end:b.source.end,text:JSON.stringify(l)});continue}for(let y of b.specifiers){let h=y.local.name;if(f||l==="@epxing/utils"&&y.type!=="ImportSpecifier")if(y.type!=="ImportSpecifier")w(h,E=>l==="@epxing/utils"&&K["@epxing/utils"].exports[E]?{source:"@epxing/utils",name:E}:ue(E),b);else{let E=y.imported.name||y.imported.value,$=ue(E);if(!$){r.push(`${t}\uFF1A\u65E7\u6839\u5BFC\u51FA ${E} \u4E0D\u552F\u4E00\u6216\u5C1A\u672A\u516C\u5F00\uFF0C\u9700\u4EBA\u5DE5\u9009\u62E9\u3002`);continue}k($,h,b.importKind==="type"||y.importKind==="type"),$.name==="createApp"&&a.add(h)}else{let E=typeof l=="string"?{source:l}:l,$=y.type==="ImportDefaultSpecifier"?E.defaultName||"default":y.type==="ImportNamespaceSpecifier"?"*":y.imported.name||y.imported.value;if(E.source==="@epxing/utils"&&y.type==="ImportSpecifier"&&!K["@epxing/utils"].exports[$]){let M=ue($);M?k(M,h):r.push(`${t}\uFF1Autils \u7684\u65E7\u5BFC\u51FA ${$} \u5C1A\u65E0\u786E\u5B9A\u6620\u5C04\u3002`);continue}$==="default"?i.add(`import ${h} from '${E.source}'`):k({source:E.source,name:$},h,b.importKind==="type"||y.importKind==="type"),$==="createApp"&&E.source==="@epxing/core"&&a.add(h)}}s.push({start:b.start,end:b.end,text:""})}}if(N(p,(b,S)=>{b.type!=="StringLiteral"||!it(b.value)||S?.type==="ImportDeclaration"||/Export/.test(S?.type||"")||S?.type==="CallExpression"&&(S.callee.type==="Import"||S.callee.name==="require")&&r.push(`${t}\uFF1A\u52A8\u6001\u5BFC\u5165/require ${b.value} \u9700\u8981\u4EBA\u5DE5\u6539\u5199\u3002`)}),n&&a.size){let b=!1,S=1/0;N(p,f=>{if(f.type==="VariableDeclaration")for(let l of f.declarations){let m=l.init;if(m?.type!=="CallExpression"||l.id.type!=="Identifier"||!a.has(m.callee)&&!a.has(m.callee?.name))continue;let y=l.id.name;if(S=Math.min(S,m.start),!m.arguments.length){let $=x("CreateFrameRouter");k({source:"@epxing/core",name:"createFrameRouter"},$),s.push({start:m.end-1,end:m.end-1,text:`{ router: ${$}() }`})}let h=x("Components"),E=x("Business");i.add(`import ${h} from '@epxing/components'`),i.add(`import ${E} from '@epxing/business'`);for(let $ of["@epxing/theme",...Fe(o)?[]:we])!e.includes(`'${$}'`)&&!e.includes(`"${$}"`)&&i.add(`import '${$}'`);s.push({start:f.end,end:f.end,text:`
21
+ ${y}.use(${h})
22
+ ${y}.use(${E})
23
+ `}),b=!0}}),b||r.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`),N(p,(f,l)=>{f.type==="Identifier"&&c.has(f.name)&&f.start<S&&l?.type==="MemberExpression"&&l.object===f&&r.push(`${t}\uFF1A${f.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(r.length)return{source:e,manual:r,blocked:!0};s.sort((b,S)=>S.start-b.start||S.end-b.end);let A=e;for(let b of s)A=A.slice(0,b.start)+b.text+A.slice(b.end);i.size&&(A=[...i].join(`
232
24
  `)+`
233
- `+j);try{(0,X.parse)(j,{sourceType:"unambiguous",plugins:["jsx","typescript","decorators-legacy","importAttributes"]})}catch(x){return{source:e,manual:[`${t}\uFF1A\u8F6C\u6362\u540E\u8BED\u6CD5\u9A8C\u8BC1\u5931\u8D25\uFF0C\u4FDD\u7559\u539F\u6587\uFF1A${x.message}`],blocked:!0}}return{source:j,manual:i,blocked:!1}}l(st,"transformScript");function Gt(e,t={}){if(t.filename?.endsWith(".vue")){let n=[],o=!1,i=e.replace(/(<script\b[^>]*>)([\s\S]*?)(<\/script>)/g,(s,r,a,u)=>{let p=st(a,t);return n.push(...p.manual),o||=p.blocked,r+p.source+u});return{source:o?e:i,manual:n,blocked:o}}return st(e,t)}l(Gt,"rewritePackageImports");function it({read:e,files:t,packagesVersion:n,cliVersion:o="0.5.0-beta.3",templates:i,newVite:s=!1}){let r=[],a=[];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 u=nt(i,n),p=JSON.parse(e("package.json")),d=(e("src/index.js")||"").match(/import\.meta\.glob\(\s*['"]\.\/([^/'"]+)\//)?.[1]||p.name||"product",y=l(c=>c.replaceAll("__NAME__",p.name||"product").replaceAll("__DIRNAME__",d).replaceAll("__PACKAGES_VERSION__",n).replaceAll("__CLI_VERSION__",o),"render"),S=["vite.config.mjs","vite.config.js","vite.config.ts"].find(c=>e(c)!=null);if(!S&&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=S&&!s?[S]:[],j=new Set;for(let c of[...t,...A]){let g=e(c);if(!g||!/epx-frame|@epx(?:ing)?\//.test(g))continue;let b=Gt(g,{filename:c,packagesVersion:n,bootstrap:/(?:^|\/)main\.[jt]s$/.test(c)});a.push(...b.manual);let f=b.source;if(c===S&&!b.blocked&&!f.includes("epxShared(")){let E=(0,X.parse)(f,{sourceType:"module",plugins:["typescript","jsx","importAttributes"]}),$;N(E,R=>{!$&&R.type==="ObjectProperty"&&Bt(R)==="plugins"&&R.value.type==="ArrayExpression"&&($=R.value)}),$?f=`import { epxShared as __epxShared } from '@epxing/cli/vite'
234
- `+f.slice(0,$.start+1)+"__epxShared(), "+f.slice($.start+1):a.push(`${c}\uFF1Aplugins \u6570\u7EC4\u65E0\u6CD5\u786E\u5B9A\uFF0C\u9700\u4EBA\u5DE5\u63A5\u5165 @epxing/cli/vite \u7684 epxShared\u3002`)}let k=c.endsWith(".vue")?[...f.matchAll(/<script\b[^>]*>([\s\S]*?)<\/script>/g)].map(E=>E[1]):[f];for(let E of k){let $=(0,X.parse)(E,{sourceType:"unambiguous",plugins:["typescript","jsx","decorators-legacy","importAttributes"]});N($,(R,Q)=>{if(R.type!=="StringLiteral"||!/^(?:ImportDeclaration|ExportNamedDeclaration|ExportAllDeclaration)$/.test(Q?.type||"")&&!(Q?.type==="CallExpression"&&(Q.callee.type==="Import"||Q.callee.name==="require")))return;let ke=R.value.match(/^(@epxing\/[\w-]+)/)?.[1];ke&&j.add(ke)})}f!==g&&r.push({file:c,after:f})}if(a.length)return{changes:[],manual:a,blocked:!0};if(s){r.push({file:S||"vite.config.mjs",after:y(u["vite.config.mjs"])});for(let c of["@epxing/cli","@epxing/icons","@epxing/theme"])j.add(c)}p.dependencies||={},p.devDependencies||={};for(let[c,g]of Object.entries(JSON.parse(y(u["package.json"])).dependencies))c.startsWith("@epxing/")&&!j.has(c)&&!["@epxing/core","@epxing/components","@epxing/utils"].includes(c)||(p.dependencies[c]=g);for(let c of["dependencies","devDependencies","peerDependencies"])for(let g of Object.keys(p[c]||{}))if(g.startsWith("@epx/")||U(g)!==g){let b=U(g);p[c][b]=n,delete p[c][g]}else g.startsWith("@epxing/")&&g!=="@epxing/cli"&&(p[c][g]=n);for(let c of j){let g=["@epxing/cli","@epxing/icons"].includes(c),b=g?"devDependencies":"dependencies";p[b][c]=c==="@epxing/cli"?o:n,delete p[g?"dependencies":"devDependencies"][c]}let x=S&&/node_modules\/epx-frame\/lib/.test(e(S)||"")&&!s;x?(p.devDependencies["epx-frame"]=p.dependencies["epx-frame"]||p.devDependencies["epx-frame"],delete p.dependencies["epx-frame"]):(delete p.dependencies["epx-frame"],delete p.devDependencies["epx-frame"]),p.runtime="vue3",r.push({file:"package.json",after:JSON.stringify(p,null,2)+`
235
- `});let h=e("PRODUCT-GUIDE.md")==null||e("PRODUCT-GUIDE.md").includes("<!-- epxing-generated-product-guide -->")?"PRODUCT-GUIDE.md":"EPXING-PACKAGES-GUIDE.md";return e(h)!=null&&!e(h).includes("<!-- epxing-generated-product-guide -->")?{changes:[],manual:[`${h} \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}:(r.push({file:h,after:y(u["PRODUCT-GUIDE.md"])}),{changes:r,manual:x?["\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(it,"planIndependentPackages");import{TEMPLATES as Ht}from"../epx-create/scaffold.mjs";var D=process.argv.slice(2),ie=D.indexOf("--epx-frame"),re=ie!==-1?D[ie+1]:null;ie!==-1&&D.splice(ie,2);var fe=D.indexOf("--packages-version"),O=fe===-1?null:D.splice(fe,2)[1],rt=D.indexOf("--cli-version"),pt=rt===-1?"0.5.0-beta.3":D.splice(rt,2)[1];if(re&&O)throw new Error("--packages-version \u4E0E --epx-frame \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A");if(fe!==-1&&(!O||O.startsWith("--")))throw new Error("--packages-version \u7F3A\u5C11\u503C");var _=D.find(e=>!e.startsWith("--")),W=D.includes("--apply"),xe=D.includes("--transform-vue"),ge=D.includes("--report-only"),ct=D.includes("--to-vite"),m=l((...e)=>console.log(...e),"log");re&&(ee["epx-frame"].target=re);(!_||!v.existsSync(_))&&(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 V=l(e=>P.join(_,e),"rel"),F=l(e=>v.existsSync(V(e))?v.readFileSync(V(e),"utf8"):null,"read"),I=[],C=[],he=!1,L=l(e=>m(`
25
+ `+A);try{(0,Y.parse)(A,{sourceType:"unambiguous",plugins:["jsx","typescript","decorators-legacy","importAttributes"]})}catch(b){return{source:e,manual:[`${t}\uFF1A\u8F6C\u6362\u540E\u8BED\u6CD5\u9A8C\u8BC1\u5931\u8D25\uFF0C\u4FDD\u7559\u539F\u6587\uFF1A${b.message}`],blocked:!0}}return{source:A,manual:r,blocked:!1}}u(rt,"transformScript");function Gt(e,t={}){if(t.filename?.endsWith(".vue")){let n=[],o=!1,r=e.replace(/(<script\b[^>]*>)([\s\S]*?)(<\/script>)/g,(s,i,a,c)=>{let p=rt(a,t);return n.push(...p.manual),o||=p.blocked,i+p.source+c});return{source:o?e:r,manual:n,blocked:o}}return rt(e,t)}u(Gt,"rewritePackageImports");function at({read:e,files:t,packagesVersion:n,cliVersion:o="0.5.0-beta.4",templates:r,newVite:s=!1}){let i=[],a=[];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 c=je(r,n),p=JSON.parse(e("package.json")),d=(e("src/index.js")||"").match(/import\.meta\.glob\(\s*['"]\.\/([^/'"]+)\//)?.[1]||p.name||"product",x=u(l=>l.replaceAll("__NAME__",p.name||"product").replaceAll("__DIRNAME__",d).replaceAll("__PACKAGES_VERSION__",n).replaceAll("__CLI_VERSION__",o),"render"),k=["vite.config.mjs","vite.config.js","vite.config.ts"].find(l=>e(l)!=null);if(!k&&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 w=k&&!s?[k]:[],A=new Set,b=Pe(e("src/main.js"),e("src/App.vue"),p.name);for(let l of[...t,...w]){let m=e(l);if(!m||!/epx-frame|@epx(?:ing)?\//.test(m))continue;let y=l==="src/main.js"&&b?{source:x(c["src/main.js"]),manual:[],blocked:!1}:Gt(m,{filename:l,packagesVersion:n,bootstrap:/(?:^|\/)main\.[jt]s$/.test(l)});a.push(...y.manual);let h=y.source;if(l===k&&!y.blocked&&!h.includes("epxShared(")){let $=(0,Y.parse)(h,{sourceType:"module",plugins:["typescript","jsx","importAttributes"]}),M;N($,z=>{!M&&z.type==="ObjectProperty"&&zt(z)==="plugins"&&z.value.type==="ArrayExpression"&&(M=z.value)}),M?h=`import { epxShared as __epxShared } from '@epxing/cli/vite'
26
+ `+h.slice(0,M.start+1)+"__epxShared(), "+h.slice(M.start+1):a.push(`${l}\uFF1Aplugins \u6570\u7EC4\u65E0\u6CD5\u786E\u5B9A\uFF0C\u9700\u4EBA\u5DE5\u63A5\u5165 @epxing/cli/vite \u7684 epxShared\u3002`)}let E=l.endsWith(".vue")?[...h.matchAll(/<script\b[^>]*>([\s\S]*?)<\/script>/g)].map($=>$[1]):[h];for(let $ of E){let M=(0,Y.parse)($,{sourceType:"unambiguous",plugins:["typescript","jsx","decorators-legacy","importAttributes"]});N(M,(z,ee)=>{if(z.type!=="StringLiteral"||!/^(?:ImportDeclaration|ExportNamedDeclaration|ExportAllDeclaration)$/.test(ee?.type||"")&&!(ee?.type==="CallExpression"&&(ee.callee.type==="Import"||ee.callee.name==="require")))return;let ke=z.value.match(/^(@epxing\/[\w-]+)/)?.[1];ke&&A.add(ke)})}h!==m&&i.push({file:l,after:h})}if(a.length)return{changes:[],manual:a,blocked:!0};if(s){i.push({file:k||"vite.config.mjs",after:x(c["vite.config.mjs"])});for(let l of["@epxing/cli","@epxing/icons","@epxing/theme"])A.add(l)}p.dependencies||={},p.devDependencies||={};for(let[l,m]of Object.entries(JSON.parse(x(c["package.json"])).dependencies))l.startsWith("@epxing/")&&!A.has(l)&&!["@epxing/core","@epxing/components","@epxing/utils"].includes(l)||(p.dependencies[l]=m);for(let l of["dependencies","devDependencies","peerDependencies"])for(let m of Object.keys(p[l]||{}))if(m.startsWith("@epx/")||U(m)!==m){let y=U(m);p[l][y]=n,delete p[l][m]}else m.startsWith("@epxing/")&&m!=="@epxing/cli"&&(p[l][m]=n);for(let l of A){let m=["@epxing/cli","@epxing/icons"].includes(l),y=m?"devDependencies":"dependencies";p[y][l]=l==="@epxing/cli"?o:n,delete p[m?"dependencies":"devDependencies"][l]}let S=k&&/node_modules\/epx-frame\/lib/.test(e(k)||"")&&!s;S?(p.devDependencies["epx-frame"]=p.dependencies["epx-frame"]||p.devDependencies["epx-frame"],delete p.dependencies["epx-frame"]):(delete p.dependencies["epx-frame"],delete p.devDependencies["epx-frame"]),p.runtime="vue3",i.push({file:"package.json",after:JSON.stringify(p,null,2)+`
27
+ `});let f=e("PRODUCT-GUIDE.md")==null||e("PRODUCT-GUIDE.md").includes("<!-- epxing-generated-product-guide -->")?"PRODUCT-GUIDE.md":"EPXING-PACKAGES-GUIDE.md";return e(f)!=null&&!e(f).includes("<!-- epxing-generated-product-guide -->")?{changes:[],manual:[`${f} \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}:(i.push({file:f,after:x(c["PRODUCT-GUIDE.md"])}),{changes:i,manual:S?["\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})}u(at,"planIndependentPackages");import{TEMPLATES as Wt}from"../epx-create/scaffold.mjs";var D=process.argv.slice(2),re=D.indexOf("--epx-frame"),ae=re!==-1?D[re+1]:null;re!==-1&&D.splice(re,2);var de=D.indexOf("--packages-version"),_=de===-1?null:D.splice(de,2)[1],pt=D.indexOf("--cli-version"),lt=pt===-1?"0.5.0-beta.4":D.splice(pt,2)[1];if(ae&&_)throw new Error("--packages-version \u4E0E --epx-frame \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A");if(de!==-1&&(!_||_.startsWith("--")))throw new Error("--packages-version \u7F3A\u5C11\u503C");var T=D.find(e=>!e.startsWith("--")),J=D.includes("--apply"),fe=D.includes("--transform-vue"),ge=D.includes("--report-only"),ut=D.includes("--to-vite"),g=u((...e)=>console.log(...e),"log");ae&&(te["epx-frame"].target=ae);(!T||!v.existsSync(T))&&(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 O=u(e=>P.join(T,e),"rel"),j=u(e=>v.existsSync(O(e))?v.readFileSync(O(e),"utf8"):null,"read"),F=[],C=[],ve=!1,L=u(e=>g(`
236
28
  ${"\u2501".repeat(60)}
237
29
  \u258D ${e}
238
- ${"\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(W)try{de("git status --porcelain",{cwd:_,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 T=[],M=[],lt=[],ut=l(e=>{for(let t of v.readdirSync(e,{withFileTypes:!0})){let n=P.join(e,t.name);t.isDirectory()&&!/node_modules|\.git|^lib$|^dist$/.test(t.name)?ut(n):t.name.endsWith(".vue")?(T.push(n),M.push(n)):/\.(?:[cm]?js|jsx|ts|tsx)$/.test(t.name)?M.push(n):/\.(?:css|scss|less|sass|styl|stylus)$/.test(t.name)&&lt.push(n)}},"walk");v.existsSync(V("src"))&&ut(V("src"));var Se=new Set;for(let e of M){let t=v.readFileSync(e,"utf8");for(let n of t.matchAll(/(?:from\s+|require\()\s*['"]([^'"./][^'"]*)['"]/g)){let o=n[1];o.startsWith("@/")||Se.add(o.startsWith("@")?o.split("/").slice(0,2).join("/"):o.split("/")[0])}}var mt=l(e=>{let t=e.match(/<script(\s[^>]*)?>([\s\S]*?)<\/script>/);return t?{attrs:t[1]||"",body:t[2]}:null},"scriptOf"),gt=l(e=>/[(=,]\s*\n?\s*<[A-Za-z][\w-]*[\s>/]/.test(e),"hasJsx"),B=T.filter(e=>{let t=mt(v.readFileSync(e,"utf8"));return t&&gt(t.body)});L("\u2460 \u4F9D\u8D56\u8FC1\u79FB\uFF08package.json\uFF09");var ne=F("package.json"),dt=F("webpack.config.js")!=null;if(ne){let e=JSON.parse(ne),t=e.runtime!=="vue3";e.runtime="vue3",t&&m(" [\u6539] runtime \u2192 vue3\uFF08\u521B\u5EFA/\u8FC1\u79FB\u540E\u7684\u8FD0\u884C\u65F6\u6807\u8BC6\uFF09");let n=[],o=l((s,r,a,u)=>{let p=a?"devDependencies":"dependencies";e[p]=e[p]||{},e[p][s]!==r&&(n.push([e[p][s]!=null?"\u6539":"\u52A0",s,e[p][s]||"\u2014",r,u||""]),e[p][s]=r)},"setDep");for(let[s,r]of Object.entries(ee))for(let a of["dependencies","devDependencies"]){let u=e[a];u&&u[s]!=null&&(r.target===null?(n.push(["\u5220",s,u[s],"\u2014",r.note||""]),delete u[s]):u[s]!==r.target&&(n.push(["\u6539",s,u[s],r.target,r.note||""]),u[s]=r.target))}if(dt)for(let[s,r]of Object.entries(Ae))o(s,r,!0,"lib \u6784\u5EFA\u95ED\u5305");if(B.length)for(let[s,r]of Object.entries(Pe))o(s,r,!0,`.vue \u5185 JSX\uFF08${B.length} \u6587\u4EF6\uFF09`);if(T.length)for(let[s,r]of Object.entries(Fe))o(s,r,!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 i={...e.dependencies||{},...e.devDependencies||{}};for(let s of[...Se].sort())i[s]||s==="epx-frame"||s==="vue"||(pe[s]?o(s,pe[s],!1,"\u9690\u5F0F\u4F9D\u8D56\u8865\u58F0\u660E\uFF08\u539F\u9760 hoist\uFF09"):C.push(`src \u91CC import \u4E86 \`${s}\` \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(([s,r,a,u,p])=>m(` [${s}] ${r.padEnd(26)} ${String(a).padEnd(12)} \u2192 ${String(u).padEnd(12)} ${p}`)),I.push({file:"package.json",after:JSON.stringify(e,null,2)+`
239
- `})):m(" \uFF08\u65E0\u5339\u914D\u4F9D\u8D56\u9700\u8FC1\u79FB\uFF09")}else m(" \u2717 \u672A\u627E\u5230 package.json");L("\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=>F(e)!=null);if(Y){let e=F(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,i,s)=>{let r=n.map(a=>`app.use(${a})`).join(`
240
- `);return`const app = ${i||""}createApp()
241
- ${r}${r?`
242
- `:""}app.mount(${s})`}),/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=Me(e),e!==t?(m(` \u2713 ${Y}\uFF1AVue.use(${n.join(",")})\u2192app.use\u3001$mount\u2192mount\u3001import \u6536\u655B`),I.push({file:Y,after:e})):m(` \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 w=["src/index.js","index.js"].find(e=>F(e)!=null);if(w){let e=F(w),t=e;e=Ge(e),/require\.context/.test(e)&&C.push(`${w}\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?(m(` \u2713 ${w}\uFF1Ainstall \u7B7E\u540D \u2192 (app, ...)\u3001Vue2 \u5168\u5C40 API \u2192 app \u5B9E\u4F8B`),I.push({file:w,after:e})):m(` \xB7 ${w}\uFF1A\u5DF2\u517C\u5BB9\u6216\u5199\u6CD5\u4E0D\u8BC6\u522B`)}var G=["babel.config.js",".babelrc.js"].find(e=>F(e)!=null);if(G){let e=F(G),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: [
30
+ ${"\u2501".repeat(60)}`),"stage"),Jt=u(e=>{let t=String(e),n=/(^|[^\d.])3(\.|x|\b)/.test(t);return/(^|[^\d.])2(\.|x|\b)/.test(t)&&!n},"wantsVue2Only");if(J)try{me("git status --porcelain",{cwd:T,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 R=[],V=[],gt=[],mt=u(e=>{for(let t of v.readdirSync(e,{withFileTypes:!0})){let n=P.join(e,t.name);t.isDirectory()&&!/node_modules|\.git|^lib$|^dist$/.test(t.name)?mt(n):t.name.endsWith(".vue")?(R.push(n),V.push(n)):/\.(?:[cm]?js|jsx|ts|tsx)$/.test(t.name)?V.push(n):/\.(?:css|scss|less|sass|styl|stylus)$/.test(t.name)&&gt.push(n)}},"walk");v.existsSync(O("src"))&&mt(O("src"));var he=new Set;for(let e of V){let t=v.readFileSync(e,"utf8");for(let n of t.matchAll(/(?:from\s+|require\()\s*['"]([^'"./][^'"]*)['"]/g)){let o=n[1];o.startsWith("@/")||he.add(o.startsWith("@")?o.split("/").slice(0,2).join("/"):o.split("/")[0])}}var dt=u(e=>{let t=e.match(/<script(\s[^>]*)?>([\s\S]*?)<\/script>/);return t?{attrs:t[1]||"",body:t[2]}:null},"scriptOf"),ft=u(e=>/[(=,]\s*\n?\s*<[A-Za-z][\w-]*[\s>/]/.test(e),"hasJsx"),B=R.filter(e=>{let t=dt(v.readFileSync(e,"utf8"));return t&&ft(t.body)});L("\u2460 \u4F9D\u8D56\u8FC1\u79FB\uFF08package.json\uFF09");var oe=j("package.json"),xt=j("webpack.config.js")!=null;if(oe){let e=JSON.parse(oe),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=u((s,i,a,c)=>{let p=a?"devDependencies":"dependencies";e[p]=e[p]||{},e[p][s]!==i&&(n.push([e[p][s]!=null?"\u6539":"\u52A0",s,e[p][s]||"\u2014",i,c||""]),e[p][s]=i)},"setDep");for(let[s,i]of Object.entries(te))for(let a of["dependencies","devDependencies"]){let c=e[a];c&&c[s]!=null&&(i.target===null?(n.push(["\u5220",s,c[s],"\u2014",i.note||""]),delete c[s]):c[s]!==i.target&&(n.push(["\u6539",s,c[s],i.target,i.note||""]),c[s]=i.target))}if(xt)for(let[s,i]of Object.entries(Ae))o(s,i,!0,"lib \u6784\u5EFA\u95ED\u5305");if(B.length)for(let[s,i]of Object.entries(Ie))o(s,i,!0,`.vue \u5185 JSX\uFF08${B.length} \u6587\u4EF6\uFF09`);if(R.length)for(let[s,i]of Object.entries(Te))o(s,i,!1,"element-plus \u56FE\u6807\uFF08gogocode \u8F6C\u6362\u4EA7\u7269\u9700\u8981\uFF09");(oe.includes("@vue/eslint-config-standard")||oe.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 r={...e.dependencies||{},...e.devDependencies||{}};for(let s of[...he].sort())r[s]||s==="epx-frame"||s==="vue"||(ce[s]?o(s,ce[s],!1,"\u9690\u5F0F\u4F9D\u8D56\u8865\u58F0\u660E\uFF08\u539F\u9760 hoist\uFF09"):C.push(`src \u91CC import \u4E86 \`${s}\` \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(([s,i,a,c,p])=>g(` [${s}] ${i.padEnd(26)} ${String(a).padEnd(12)} \u2192 ${String(c).padEnd(12)} ${p}`)),F.push({file:"package.json",after:JSON.stringify(e,null,2)+`
31
+ `})):g(" \uFF08\u65E0\u5339\u914D\u4F9D\u8D56\u9700\u8FC1\u79FB\uFF09")}else g(" \u2717 \u672A\u627E\u5230 package.json");L("\u2461 codemod\uFF08main.js / index.js / babel.config.js / webpack.config.js / \u7A7A SFC\uFF09");var Z=["src/main.js","src/main.ts","main.js"].find(e=>j(e)!=null);if(Z){let e=j(Z),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,r,s)=>{let i=n.map(a=>`app.use(${a})`).join(`
32
+ `);return`const app = ${r||""}createApp()
33
+ ${i}${i?`
34
+ `:""}app.mount(${s})`}),/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=_e(e),e!==t?(g(` \u2713 ${Z}\uFF1AVue.use(${n.join(",")})\u2192app.use\u3001$mount\u2192mount\u3001import \u6536\u655B`),F.push({file:Z,after:e})):g(` \xB7 ${Z}\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 I=["src/index.js","index.js"].find(e=>j(e)!=null);if(I){let e=j(I),t=e;e=We(e),/require\.context/.test(e)&&C.push(`${I}\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 ${I}\uFF1Ainstall \u7B7E\u540D \u2192 (app, ...)\u3001Vue2 \u5168\u5C40 API \u2192 app \u5B9E\u4F8B`),F.push({file:I,after:e})):g(` \xB7 ${I}\uFF1A\u5DF2\u517C\u5BB9\u6216\u5199\u6CD5\u4E0D\u8BC6\u522B`)}var G=["babel.config.js",".babelrc.js"].find(e=>j(e)!=null);if(G){let e=j(G),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: [
243
35
  '@vue/babel-plugin-jsx', // .vue \u5185 JSX\uFF08renderColumn \u7B49\uFF09`):e=e.replace(/module\.exports\s*=\s*\{/,`module.exports = {
244
- plugins: ['@vue/babel-plugin-jsx'],`)),e!==t?(m(` \u2713 ${G}\uFF1A\u5220\u6309\u9700\u63D2\u4EF6/cli preset${B.length?" + \u52A0 @vue/babel-plugin-jsx":""}`),I.push({file:G,after:e})):m(` \xB7 ${G}\uFF1A\u65E0\u9700\u6539`),/@babel\/preset-env/.test(e)||C.push(`${G}\uFF1A\u6CA1\u6709 @babel/preset-env\u2014\u2014\u8865 presets: [['@babel/preset-env']]`),/ie\s*>=?\s*\d/.test(e)&&C.push(`${G}\uFF1Atargets \u542B IE\uFF08Vue3 \u4E0D\u652F\u6301 IE\uFF09\uFF0C\u5EFA\u8BAE\u6539\u73B0\u4EE3\u6D4F\u89C8\u5668`)}if(dt){let e=F("webpack.config.js"),t=e;/frame'\s*,\s*'Vue'/.test(e)||(e=e.replace(/externals:\s*(\/[^\n/]*(?:\\\/[^\n/]*)*\/i?)\s*,/,(n,o)=>`externals: [
36
+ plugins: ['@vue/babel-plugin-jsx'],`)),e!==t?(g(` \u2713 ${G}\uFF1A\u5220\u6309\u9700\u63D2\u4EF6/cli preset${B.length?" + \u52A0 @vue/babel-plugin-jsx":""}`),F.push({file:G,after:e})):g(` \xB7 ${G}\uFF1A\u65E0\u9700\u6539`),/@babel\/preset-env/.test(e)||C.push(`${G}\uFF1A\u6CA1\u6709 @babel/preset-env\u2014\u2014\u8865 presets: [['@babel/preset-env']]`),/ie\s*>=?\s*\d/.test(e)&&C.push(`${G}\uFF1Atargets \u542B IE\uFF08Vue3 \u4E0D\u652F\u6301 IE\uFF09\uFF0C\u5EFA\u8BAE\u6539\u73B0\u4EE3\u6D4F\u89C8\u5668`)}if(xt){let e=j("webpack.config.js"),t=e;/frame'\s*,\s*'Vue'/.test(e)||(e=e.replace(/externals:\s*(\/[^\n/]*(?:\\\/[^\n/]*)*\/i?)\s*,/,(n,o)=>`externals: [
245
37
  ${o},
246
38
  // 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
247
39
  { vue: { root: ['frame', 'Vue'], commonjs: 'vue', commonjs2: 'vue', amd: 'vue' } }
248
40
  ],`)),B.length&&(e=e.split(`
249
41
  `).map(n=>n.includes("test:")&&n.includes(".js")&&!n.includes(".jsx")&&!n.includes("json")&&!n.includes(".vue")?n.replace(".js",".jsx?"):n).join(`
250
- `)),e!==t?(m(` \u2713 webpack.config.js\uFF1Aexternals \u52A0 vue \u5916\u7F6E${B.length?" + babel \u89C4\u5219\u6536 .jsx":""}`),I.push({file:"webpack.config.js",after:e})):m(" \xB7 webpack.config.js\uFF1A\u65E0\u9700\u6539\u6216\u5199\u6CD5\u4E0D\u8BC6\u522B\uFF08\u4EBA\u5DE5\u6838\u5BF9\uFF09")}for(let e of T)v.readFileSync(e,"utf8").trim()===""&&(I.push({file:P.relative(_,e),after:`<script>
42
+ `)),e!==t?(g(` \u2713 webpack.config.js\uFF1Aexternals \u52A0 vue \u5916\u7F6E${B.length?" + babel \u89C4\u5219\u6536 .jsx":""}`),F.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 R)v.readFileSync(e,"utf8").trim()===""&&(F.push({file:P.relative(T,e),after:`<script>
251
43
  // \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
252
44
  export default {}
253
45
  </script>
254
- `}),m(` \u2713 \u7A7A SFC \u8865\u9F50\uFF1A${P.relative(_,e)}`));L("\u2462 .vue \u6279\u91CF\u8F6C\u6362\uFF08gogocode plugin-vue + plugin-element\uFF0Cstyle \u5757\u5FEB\u7167\u4FDD\u62A4\uFF09");var z=l(e=>T.filter(t=>e.test(v.readFileSync(t,"utf8"))).length,"scan"),oe=/<style[^>]*>[\s\S]*?<\/style>/g,ft={"element-ui\uFF08el-*\uFF09\u7528\u6CD5 \u2192 element-plus API \u5DEE\u5F02\uFF08el-dialog visible.sync\u2192v-model\u3001date value-format \u7B49\uFF09":z(/<el-/),'slot="x" / slot-scope\uFF08\u65E7\u63D2\u69FD\uFF09\u2192 v-slot\uFF08gogocode \u81EA\u52A8\uFF09':z(/slot="|slot-scope/),"\u81EA\u5B9A\u4E49\u7EC4\u4EF6 v-model\uFF08value/input \u2192 modelValue\uFF0Cgogocode \u81EA\u52A8\uFF0C\u8FD0\u884C\u65F6\u590D\u6838\uFF09":z(/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":z(/\$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":z(/\{\{[^}]*\|[^}|]+\}\}/),"$children\uFF08Vue3 \u79FB\u9664\uFF09\u2192 ref/provide-inject\uFF08\u4EBA\u5DE5\uFF09":z(/\$children/),".native \u4FEE\u9970\u7B26\uFF08Vue3 \u79FB\u9664\uFF0C\u4EBA\u5DE5\u590D\u6838\uFF09":z(/\.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":T.filter(e=>/@[\w.]+="[^"]*\n[^";]*\n/.test(v.readFileSync(e,"utf8"))).length};m(` .vue \u6587\u4EF6\uFF1A${T.length} \u4E2A\uFF08JSX\uFF1A${B.length}\uFF09`);Object.entries(ft).filter(([,e])=>e>0).forEach(([e,t])=>m(` \xB7 ${String(t).padStart(3)} \u6587\u4EF6 ${e}`));var se=".epx-migrate-vue3-out";if(xe&&W){let t=M.filter(s=>{try{return v.statSync(s).size>204800}catch{return!1}});if(t.length){let s=t.map(r=>`${P.relative(_,r)}\uFF08${Math.round(v.statSync(r).size/1024)}KB\uFF09`).join("\u3001");m(` \u26A0 ${t.length} \u4E2A\u6E90\u7801\u6587\u4EF6\u8D85\u8FC7 200KB\uFF0Cgogocode \u4F1A\u8DF3\u8FC7\uFF1A${s}`),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${s}`)}m(`
255
- \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 s of T)n.set(s,v.readFileSync(s,"utf8").match(oe)||[]);let o=P.join(ve.homedir(),".epx-migrate","gogocode"),i=Ne({projectDir:P.resolve(_),toolDir:P.resolve(P.dirname(zt(import.meta.url)),"../.."),cacheDir:o,versions:ae,exists:l(s=>v.existsSync(s),"exists"),log:m,install:l(({cacheDir:s,specs:r})=>{v.mkdirSync(s,{recursive:!0});let a=P.join(s,"package.json");v.existsSync(a)||v.writeFileSync(a,JSON.stringify({name:"epx-migrate-gogocode",private:!0,version:"1.0.0"},null,2)+`
256
- `),de(`npm i --no-audit --no-fund ${r.join(" ")}`,{cwd:s,stdio:"inherit"})},"install")});i.cli||(C.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
257
- cd ${o} && npm i ${Object.entries(ae).map(([s,r])=>`${s}@${r}`).join(" ")}`),m(` \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 c of["gogocode-plugin-vue","gogocode-plugin-element"])de(`node "${i.cli}" -s ./src -t ${c} -o ./${se}`,{cwd:_,input:`N
258
- `,stdio:["pipe","inherit","inherit"]}),Oe(V(se),V("src"),v,P),v.rmSync(V(se),{recursive:!0,force:!0}),m(` \u2713 ${c} \u5B8C\u6210`);let s=0;for(let[c,g]of n){if(!g.length)continue;let b=v.readFileSync(c,"utf8");if((b.match(oe)||[]).length===g.length){let k=0,E=b.replace(oe,()=>g[k++]);E!==b&&(v.writeFileSync(c,E),s++)}else v.writeFileSync(c,b.replace(oe,"").replace(/\s*$/,`
46
+ `}),g(` \u2713 \u7A7A SFC \u8865\u9F50\uFF1A${P.relative(T,e)}`));L("\u2462 .vue \u6279\u91CF\u8F6C\u6362\uFF08gogocode plugin-vue + plugin-element\uFF0Cstyle \u5757\u5FEB\u7167\u4FDD\u62A4\uFF09");var H=u(e=>R.filter(t=>e.test(v.readFileSync(t,"utf8"))).length,"scan"),se=/<style[^>]*>[\s\S]*?<\/style>/g,bt={"element-ui\uFF08el-*\uFF09\u7528\u6CD5 \u2192 element-plus API \u5DEE\u5F02\uFF08el-dialog visible.sync\u2192v-model\u3001date value-format \u7B49\uFF09":H(/<el-/),'slot="x" / slot-scope\uFF08\u65E7\u63D2\u69FD\uFF09\u2192 v-slot\uFF08gogocode \u81EA\u52A8\uFF09':H(/slot="|slot-scope/),"\u81EA\u5B9A\u4E49\u7EC4\u4EF6 v-model\uFF08value/input \u2192 modelValue\uFF0Cgogocode \u81EA\u52A8\uFF0C\u8FD0\u884C\u65F6\u590D\u6838\uFF09":H(/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":H(/\$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":H(/\{\{[^}]*\|[^}|]+\}\}/),"$children\uFF08Vue3 \u79FB\u9664\uFF09\u2192 ref/provide-inject\uFF08\u4EBA\u5DE5\uFF09":H(/\$children/),".native \u4FEE\u9970\u7B26\uFF08Vue3 \u79FB\u9664\uFF0C\u4EBA\u5DE5\u590D\u6838\uFF09":H(/\.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":R.filter(e=>/@[\w.]+="[^"]*\n[^";]*\n/.test(v.readFileSync(e,"utf8"))).length};g(` .vue \u6587\u4EF6\uFF1A${R.length} \u4E2A\uFF08JSX\uFF1A${B.length}\uFF09`);Object.entries(bt).filter(([,e])=>e>0).forEach(([e,t])=>g(` \xB7 ${String(t).padStart(3)} \u6587\u4EF6 ${e}`));var ie=".epx-migrate-vue3-out";if(fe&&J){let t=V.filter(s=>{try{return v.statSync(s).size>204800}catch{return!1}});if(t.length){let s=t.map(i=>`${P.relative(T,i)}\uFF08${Math.round(v.statSync(i).size/1024)}KB\uFF09`).join("\u3001");g(` \u26A0 ${t.length} \u4E2A\u6E90\u7801\u6587\u4EF6\u8D85\u8FC7 200KB\uFF0Cgogocode \u4F1A\u8DF3\u8FC7\uFF1A${s}`),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${s}`)}g(`
47
+ \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 s of R)n.set(s,v.readFileSync(s,"utf8").match(se)||[]);let o=P.join(ye.homedir(),".epx-migrate","gogocode"),r=ze({projectDir:P.resolve(T),toolDir:P.resolve(P.dirname(Ht(import.meta.url)),"../.."),cacheDir:o,versions:pe,exists:u(s=>v.existsSync(s),"exists"),log:g,install:u(({cacheDir:s,specs:i})=>{v.mkdirSync(s,{recursive:!0});let a=P.join(s,"package.json");v.existsSync(a)||v.writeFileSync(a,JSON.stringify({name:"epx-migrate-gogocode",private:!0,version:"1.0.0"},null,2)+`
48
+ `),me(`npm i --no-audit --no-fund ${i.join(" ")}`,{cwd:s,stdio:"inherit"})},"install")});r.cli||(C.push(`gogocode \u672A\u80FD\u5C31\u7EEA\uFF08.vue \u672A\u8F6C\u6362\uFF09\uFF1A${r.error||"\u672A\u77E5\u539F\u56E0"}\u3002\u53EF\u624B\u52A8\u88C5\u540E\u91CD\u8DD1\uFF1A
49
+ cd ${o} && npm i ${Object.entries(pe).map(([s,i])=>`${s}@${i}`).join(" ")}`),g(` \u2717 gogocode \u672A\u5C31\u7EEA\uFF1A${r.error||"\u672A\u77E5\u539F\u56E0"}\uFF08\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\uFF09`));try{if(!r.cli)throw new Error(r.error||"gogocode \u672A\u5C31\u7EEA");for(let f of["gogocode-plugin-vue","gogocode-plugin-element"])me(`node "${r.cli}" -s ./src -t ${f} -o ./${ie}`,{cwd:T,input:`N
50
+ `,stdio:["pipe","inherit","inherit"]}),Ue(O(ie),O("src"),v,P),v.rmSync(O(ie),{recursive:!0,force:!0}),g(` \u2713 ${f} \u5B8C\u6210`);let s=0;for(let[f,l]of n){if(!l.length)continue;let m=v.readFileSync(f,"utf8");if((m.match(se)||[]).length===l.length){let h=0,E=m.replace(se,()=>l[h++]);E!==m&&(v.writeFileSync(f,E),s++)}else v.writeFileSync(f,m.replace(se,"").replace(/\s*$/,`
259
51
 
260
- `+g.join(`
52
+ `+l.join(`
261
53
 
262
54
  `)+`
263
- `)),s++}m(` \u2713 style \u5757\u6309\u5FEB\u7167\u8FD8\u539F\uFF1A${s} \u6587\u4EF6`);let r=0;for(let c of M){let g=v.readFileSync(c,"utf8");g.includes("@element-plus/icons'")&&(v.writeFileSync(c,g.split("@element-plus/icons'").join("@element-plus/icons-vue'")),r++)}r&&m(` \u2713 icons \u5305\u540D\u6539\u5199\uFF08@element-plus/icons \u2192 icons-vue\uFF09\uFF1A${r} \u6587\u4EF6`);let a=0;for(let c of T){let g=v.readFileSync(c,"utf8"),b=mt(g);b&&!/lang=/.test(b.attrs)&&gt(b.body)&&(v.writeFileSync(c,g.replace(/<script(\s[^>]*)?>/,'<script lang="jsx"$1>')),a++)}a&&m(` \u2713 JSX script \u6807 lang="jsx"\uFF1A${a} \u6587\u4EF6`);let u=0,p=0;for(let c of T){let g=v.readFileSync(c,"utf8"),b=He(g);b.count&&(v.writeFileSync(c,b.src),u++,p+=b.count)}u&&m(` \u2713 \u5185\u8054\u4E8B\u4EF6\u591A\u8BED\u53E5\u8865\u5206\u53F7\uFF1A${p} \u5904 / ${u} \u6587\u4EF6`);let d=0,y=0;for(let c of T){let g=v.readFileSync(c,"utf8"),b=ze(g);b.count&&(v.writeFileSync(c,b.src),d++,y+=b.count)}d&&m(` \u2713 .sync \u2192 v-model\uFF1A${y} \u5904 / ${d} \u6587\u4EF6`);let S=0;for(let c of T){let g=v.readFileSync(c,"utf8"),b=Je(g);b.count&&(v.writeFileSync(c,b.src),S++)}S&&m(` \u2713 element-plus \u56FE\u6807\u7EC4\u4EF6\u56DE\u9000\u4E3A epx CSS \u56FE\u6807\uFF1A${S} \u6587\u4EF6`);let A=0;for(let c of M){let g=v.readFileSync(c,"utf8"),b=qe(g);b.count&&(v.writeFileSync(c,b.src),A++)}A&&m(` \u2713 \u547D\u540D\u7A7A\u95F4\u5BFC\u5165\u6536\u655B\u4E3A\u5177\u540D\uFF08vue/vuex/vue-router\uFF09\uFF1A${A} \u6587\u4EF6`);let j=0,x=0,h=0;for(let c of M){let g=v.readFileSync(c,"utf8"),b=Ye(g);if(b.count&&(v.writeFileSync(c,b.src),j++,x+=b.count),b.warnings&&b.warnings.length){h++;let f=P.relative(_,c);for(let k of b.warnings)C.push(`${f}\uFF1A${k}`)}}j&&m(` \u2713 Vue2 JSX \u5C5E\u6027 \u2192 Vue3\uFF08domProps*/nativeOn*/scopedSlots=\uFF09\uFF1A${x} \u5904 / ${j} \u6587\u4EF6`),h&&m(` \u26A0 JSX \u533A slot="xxx" \u9700\u4EBA\u5DE5\u6539 v-slots\uFF1A${h} \u6587\u4EF6\uFF08\u5DF2\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\uFF09`)}catch(s){v.rmSync(V(se),{recursive:!0,force:!0}),i.cli&&C.push("gogocode \u8F6C\u6362\u5931\u8D25\uFF1A"+String(s.message).slice(0,160)),m(" \u2717 gogocode \u8F6C\u6362\u5931\u8D25\uFF08\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\uFF09")}}else m(`
264
- .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`);L("\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=>F(n)!==null),t=` import frameDeps from 'epx-frame/build/vite-plugin-frame-deps.mjs'
265
- \u7136\u540E\u5728\u9876\u5C42 plugins \u6570\u7EC4\u91CC\u52A0\u4E00\u9879 frameDeps()`;if(!e)m(" \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=F(e),o=n.includes("vite-plugin-frame-deps"),i=/frameDeps\(\)/.test(n);if(o&&i)m(` \xB7 ${e}\uFF1A\u5DF2\u6CE8\u5165\u8FC7\uFF0C\u8DF3\u8FC7\uFF08\u5E42\u7B49\uFF09`);else if(o||i)m(` \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
266
- ${t}`);else{let s=n,r=0;if(s.startsWith("#!")){let d=s.indexOf(`
267
- `);r=d===-1?s.length:d+1}{let d=/^([ \t]*\/\/[^\n]*\r?\n|[ \t]*\r?\n)/,y;for(;y=s.slice(r).match(d);)r+=y[0].length}s=s.slice(0,r)+`import frameDeps from 'epx-frame/build/vite-plugin-frame-deps.mjs'
268
- `+s.slice(r);let u=s;if(s=s.replace(/^([ \t]{0,4})plugins\s*:\s*\[/m,(d,y)=>d+`
269
- ${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
270
- ${y} frameDeps(),`),!(s!==u))m(` \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
271
- ${t}`);else{let d=!0,y="";if(/\.m?js$/.test(e)){let S=P.join(ve.tmpdir(),`epx-migrate-check-${Date.now()}-${Math.random().toString(36).slice(2)}.mjs`);v.writeFileSync(S,s);let A=at(process.execPath,["--check",S],{encoding:"utf8"});v.rmSync(S,{force:!0}),d=A.status===0,d||(y=String(A.stderr||"").split(`
272
- `).slice(0,3).join(" "))}d?(m(` \u2713 ${e}\uFF1A\u6CE8\u5165\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6`),I.push({file:e,after:s})):(m(` \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
55
+ `)),s++}g(` \u2713 style \u5757\u6309\u5FEB\u7167\u8FD8\u539F\uFF1A${s} \u6587\u4EF6`);let i=0;for(let f of V){let l=v.readFileSync(f,"utf8");l.includes("@element-plus/icons'")&&(v.writeFileSync(f,l.split("@element-plus/icons'").join("@element-plus/icons-vue'")),i++)}i&&g(` \u2713 icons \u5305\u540D\u6539\u5199\uFF08@element-plus/icons \u2192 icons-vue\uFF09\uFF1A${i} \u6587\u4EF6`);let a=0;for(let f of R){let l=v.readFileSync(f,"utf8"),m=dt(l);m&&!/lang=/.test(m.attrs)&&ft(m.body)&&(v.writeFileSync(f,l.replace(/<script(\s[^>]*)?>/,'<script lang="jsx"$1>')),a++)}a&&g(` \u2713 JSX script \u6807 lang="jsx"\uFF1A${a} \u6587\u4EF6`);let c=0,p=0;for(let f of R){let l=v.readFileSync(f,"utf8"),m=qe(l);m.count&&(v.writeFileSync(f,m.src),c++,p+=m.count)}c&&g(` \u2713 \u5185\u8054\u4E8B\u4EF6\u591A\u8BED\u53E5\u8865\u5206\u53F7\uFF1A${p} \u5904 / ${c} \u6587\u4EF6`);let d=0,x=0;for(let f of R){let l=v.readFileSync(f,"utf8"),m=Je(l);m.count&&(v.writeFileSync(f,m.src),d++,x+=m.count)}d&&g(` \u2713 .sync \u2192 v-model\uFF1A${x} \u5904 / ${d} \u6587\u4EF6`);let k=0;for(let f of R){let l=v.readFileSync(f,"utf8"),m=Ke(l);m.count&&(v.writeFileSync(f,m.src),k++)}k&&g(` \u2713 element-plus \u56FE\u6807\u7EC4\u4EF6\u56DE\u9000\u4E3A epx CSS \u56FE\u6807\uFF1A${k} \u6587\u4EF6`);let w=0;for(let f of V){let l=v.readFileSync(f,"utf8"),m=Ye(l);m.count&&(v.writeFileSync(f,m.src),w++)}w&&g(` \u2713 \u547D\u540D\u7A7A\u95F4\u5BFC\u5165\u6536\u655B\u4E3A\u5177\u540D\uFF08vue/vuex/vue-router\uFF09\uFF1A${w} \u6587\u4EF6`);let A=0,b=0,S=0;for(let f of V){let l=v.readFileSync(f,"utf8"),m=et(l);if(m.count&&(v.writeFileSync(f,m.src),A++,b+=m.count),m.warnings&&m.warnings.length){S++;let y=P.relative(T,f);for(let h of m.warnings)C.push(`${y}\uFF1A${h}`)}}A&&g(` \u2713 Vue2 JSX \u5C5E\u6027 \u2192 Vue3\uFF08domProps*/nativeOn*/scopedSlots=\uFF09\uFF1A${b} \u5904 / ${A} \u6587\u4EF6`),S&&g(` \u26A0 JSX \u533A slot="xxx" \u9700\u4EBA\u5DE5\u6539 v-slots\uFF1A${S} \u6587\u4EF6\uFF08\u5DF2\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\uFF09`)}catch(s){v.rmSync(O(ie),{recursive:!0,force:!0}),r.cli&&C.push("gogocode \u8F6C\u6362\u5931\u8D25\uFF1A"+String(s.message).slice(0,160)),g(" \u2717 gogocode \u8F6C\u6362\u5931\u8D25\uFF08\u5217\u5165\u4EBA\u5DE5\u6E05\u5355\uFF09")}}else g(`
56
+ .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`);L("\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=>j(n)!==null),t=` import frameDeps from 'epx-frame/build/vite-plugin-frame-deps.mjs'
57
+ \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=j(e),o=n.includes("vite-plugin-frame-deps"),r=/frameDeps\(\)/.test(n);if(o&&r)g(` \xB7 ${e}\uFF1A\u5DF2\u6CE8\u5165\u8FC7\uFF0C\u8DF3\u8FC7\uFF08\u5E42\u7B49\uFF09`);else if(o||r)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
58
+ ${t}`);else{let s=n,i=0;if(s.startsWith("#!")){let d=s.indexOf(`
59
+ `);i=d===-1?s.length:d+1}{let d=/^([ \t]*\/\/[^\n]*\r?\n|[ \t]*\r?\n)/,x;for(;x=s.slice(i).match(d);)i+=x[0].length}s=s.slice(0,i)+`import frameDeps from 'epx-frame/build/vite-plugin-frame-deps.mjs'
60
+ `+s.slice(i);let c=s;if(s=s.replace(/^([ \t]{0,4})plugins\s*:\s*\[/m,(d,x)=>d+`
61
+ ${x} // \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
62
+ ${x} frameDeps(),`),!(s!==c))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
63
+ ${t}`);else{let d=!0,x="";if(/\.m?js$/.test(e)){let k=P.join(ye.tmpdir(),`epx-migrate-check-${Date.now()}-${Math.random().toString(36).slice(2)}.mjs`);v.writeFileSync(k,s);let w=ct(process.execPath,["--check",k],{encoding:"utf8"});v.rmSync(k,{force:!0}),d=w.status===0,d||(x=String(w.stderr||"").split(`
64
+ `).slice(0,3).join(" "))}d?(g(` \u2713 ${e}\uFF1A\u6CE8\u5165\u4F9D\u8D56\u6E05\u5355\u63D2\u4EF6`),F.push({file:e,after:s})):(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
273
65
  ${t}
274
- \uFF08\u6821\u9A8C\u62A5\u9519\uFF1A${y}\uFF09`))}}}}L("\u2464 \u6309\u9700\u6253\u5305\u5F62\u6001\u6CE8\u5165\uFF08lazyLib\uFF09");{let e=["vite.config.mjs","vite.config.js","vite.config.ts"].find(n=>F(n)!==null),t=` import lazyLib from 'epx-frame/build/vite-plugin-lazy-lib.mjs'
66
+ \uFF08\u6821\u9A8C\u62A5\u9519\uFF1A${x}\uFF09`))}}}}L("\u2464 \u6309\u9700\u6253\u5305\u5F62\u6001\u6CE8\u5165\uFF08lazyLib\uFF09");{let e=["vite.config.mjs","vite.config.js","vite.config.ts"].find(n=>j(n)!==null),t=` import lazyLib from 'epx-frame/build/vite-plugin-lazy-lib.mjs'
275
67
  \u7136\u540E\u5728 plugins \u6570\u7EC4\u91CC frameDeps() \u4E4B\u540E\u52A0\uFF1A
276
68
  lazyLib({ enabled: process.env.LAZY_LIB === 'true', glob: '<\u4E0E\u5165\u53E3 import.meta.glob \u9010\u5B57\u76F8\u540C\u7684\u6A21\u5F0F>', pkgName: '<\u5305\u540D>' })
277
- \u5E76\u5728 package.json \u52A0 "build:lib:lazy": "cross-env LAZY_LIB=true vite build" \u4E0E cross-env devDep`;if(!e)m(" \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(!w)m(" \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
278
- ${t}`);else{let n=_e(F(w)),o=(()=>{try{return JSON.parse(F("package.json")||"{}").name||""}catch{return""}})();if(!n)m(` \xB7 ${w}\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(`${w} \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
279
- `+t);else if(!o)m(" \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
280
- `+t);else{let i=[...I].reverse().find(a=>a.file===e),s=i?i.after:F(e),r=Re(s,{glob:n,pkgName:o});if(r.status==="present")m(` \xB7 ${e}\uFF1A\u5DF2\u6CE8\u5165\u8FC7\uFF0C\u8DF3\u8FC7\uFF08\u5E42\u7B49\uFF09`);else if(r.status==="half")m(` \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
281
- ${t}`);else if(r.status==="no-anchor")m(` \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
282
- ${t}`);else{let a=!0,u="";if(/\.m?js$/.test(e)){let p=P.join(ve.tmpdir(),`epx-migrate-lazy-check-${Date.now()}-${Math.random().toString(36).slice(2)}.mjs`);v.writeFileSync(p,r.src);let d=at(process.execPath,["--check",p],{encoding:"utf8"});v.rmSync(p,{force:!0}),a=d.status===0,a||(u=String(d.stderr||"").split(`
283
- `).slice(0,3).join(" "))}if(!a)m(` \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
+ \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(!I)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
70
+ ${t}`);else{let n=Le(j(I)),o=(()=>{try{return JSON.parse(j("package.json")||"{}").name||""}catch{return""}})();if(!n)g(` \xB7 ${I}\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(`${I} \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
71
+ `+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
72
+ `+t);else{let r=[...F].reverse().find(a=>a.file===e),s=r?r.after:j(e),i=De(s,{glob:n,pkgName:o});if(i.status==="present")g(` \xB7 ${e}\uFF1A\u5DF2\u6CE8\u5165\u8FC7\uFF0C\u8DF3\u8FC7\uFF08\u5E42\u7B49\uFF09`);else if(i.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
73
+ ${t}`);else if(i.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
74
+ ${t}`);else{let a=!0,c="";if(/\.m?js$/.test(e)){let p=P.join(ye.tmpdir(),`epx-migrate-lazy-check-${Date.now()}-${Math.random().toString(36).slice(2)}.mjs`);v.writeFileSync(p,i.src);let d=ct(process.execPath,["--check",p],{encoding:"utf8"});v.rmSync(p,{force:!0}),a=d.status===0,a||(c=String(d.stderr||"").split(`
75
+ `).slice(0,3).join(" "))}if(!a)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
284
76
  ${t}
285
- \uFF08\u6821\u9A8C\u62A5\u9519\uFF1A${u}\uFF09`);else{m(` \u2713 ${e}\uFF1A\u6CE8\u5165\u6309\u9700\u6253\u5305\u63D2\u4EF6\uFF08\u9ED8\u8BA4\u5173\uFF0Cglob='${n}'\uFF09`),i?i.after=r.src:I.push({file:e,after:r.src});let p=[...I].reverse().find(y=>y.file==="package.json"),d=null;try{d=JSON.parse(p?p.after:F("package.json")||"{}")}catch{d=null}if(!d)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:S}=Te(d);if(S){let A=JSON.stringify(y,null,2)+`
286
- `;p?p.after=A:I.push({file:"package.json",after:A}),m(" \u2713 package.json\uFF1A\u52A0 build:lib:lazy \u811A\u672C\u4E0E cross-env")}else m(" \xB7 package.json\uFF1Abuild:lib:lazy \u4E0E cross-env \u5DF2\u5728\uFF0C\u8DF3\u8FC7")}}}}}}L("\u2465 \u7B2C\u4E09\u65B9\u8FD0\u884C\u65F6\u4F9D\u8D56 Vue3 \u517C\u5BB9\u6027\u626B\u63CF");var Z=[];{let e={};try{e=JSON.parse(F("package.json")||"{}").dependencies||{}}catch{e={}}let t=Object.keys(e).filter(n=>Se.has(n));for(let n of t){if(ee[n])continue;if(te[n]){Z.push({name:n,kind:"known",detail:te[n].note}),m(` \u2717 ${n}\uFF1A\u5DF2\u77E5 Vue2-only \u2014\u2014 ${te[n].note}`);continue}let o=null;try{o=JSON.parse(v.readFileSync(V(`node_modules/${n}/package.json`),"utf8"))}catch{o=null}if(!o)continue;let i=o.peerDependencies&&o.peerDependencies.vue||o.dependencies&&o.dependencies.vue||"";i&&Wt(i)&&(Z.push({name:n,kind:"suspect",detail:`\u5176 package.json \u58F0\u660E vue \u652F\u6301 "${i}"\uFF08\u53EA\u5339\u914D Vue2\uFF09`}),m(` \xB7 ${n}\uFF1A\u7591\u4F3C Vue2-only\uFF08vue="${i}"\uFF09`))}Z.length||m(" \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=T.filter(n=>{let o=v.readFileSync(n,"utf8");return!e(o)&&/<style[^>]*\bscoped/.test(o)});if(t.length){L("\u2466 JSX \u7EC4\u4EF6 scoped \u6837\u5F0F\u5339\u914D\u590D\u6838"),m(` \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 i=(v.readFileSync(n,"utf8").match(/::v-deep|:deep\(|\/deep\/|>>>/g)||[]).length;m(` \xB7 ${P.relative(_,n).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`:""}`)}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=>P.relative(_,n).replace(/\\/g,"/")).join("\u3001")}`)}}var H=null;if(ct){L("V. webpack \u2192 Vite \u5F62\u6001\u8F6C\u6362");let e=[...I].reverse().find(r=>r.file==="package.json"&&!r.remove),t=[...I].reverse().find(r=>r.file===w&&!r.remove),o=De({projectDir:_,read:l(r=>r===w&&t?t.after:F(r),"readForVite"),epxFrameSpec:re,basePkgRaw:e?e.after:null});H=o.info;for(let r of o.changes){if(r.file==="package.json"&&!r.remove&&e){e.after=r.after,m(" \u2713 package.json\uFF08\u5E76\u5165 \u2460 \u4F9D\u8D56\u8FC1\u79FB\u4EA7\u51FA\uFF09");continue}I.push(r),m(` ${r.remove?"\u2717 \u5220":"\u2713"} ${r.file}`)}for(let r of o.manual)C.push(r);H.removedDeps&&H.removedDeps.length&&m(` \xB7 \u6458\u9664 webpack \u6784\u5EFA\u4F9D\u8D56 ${H.removedDeps.length} \u4E2A\uFF1A${H.removedDeps.join(", ")}`),m(` \xB7 \u7EC4\u4EF6\u76EE\u5F55 dirName='${H.dirName}'\uFF0ClazyLib glob='${H.glob}'`);let i=0,s=0;for(let r of M){let a=P.relative(_,r).replace(/\\/g,"/"),u=[...I].reverse().find(y=>y.file===a&&!y.remove),p=u?u.after:v.readFileSync(r,"utf8"),d=Xe(p,{isVue:r.endsWith(".vue")});d.src!==p&&(u?u.after=d.src:I.push({file:a,after:d.src}),i+=d.count,s++),d.templateAsset&&C.push(`${a}\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&&m(` \u2713 \u6E90\u7801 require.context\u2192import.meta.glob / require(\u56FE\u7247)\u2192\u9759\u6001 import\uFF1A${i} \u5904 / ${s} \u6587\u4EF6`)}L("\u8FD0\u884C\u65F6\u6807\u8BC6\uFF08runtime: vue3\uFF09");if(w){let e=[...I].reverse().find(o=>o.file===w&&!o.remove),t=e?e.after:F(w),n=et(t);n.marked?(n.src!==t&&(e?e.after=n.src:I.push({file:w,after:n.src})),m(` \u2713 ${w}\uFF1A\u9ED8\u8BA4\u5BFC\u51FA\u5305\u542B runtime: 'vue3'`)):(C.push(`${w} \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`),m(` \xB7 ${w}\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");L("\u65E5\u671F\u63A7\u4EF6\u683C\u5F0F\uFF08Element UI \u2192 Element Plus\uFF09");var ye=[];for(let e of M){let t=P.relative(_,e),n=I.find(i=>i.file===t&&!i.remove),o=Ce(n?n.after:v.readFileSync(e,"utf8"),{filename:e});if(o.count){n?n.after=o.src:I.push({file:t,after:o.src});for(let i of o.fixes)ye.push(`${t}:${i.line}\uFF1A${i.before} \u2192 ${i.after}`);m(` \u2713 ${t}\uFF1A${o.count} \u5904\u65E5\u671F\u683C\u5F0F\u4FEE\u590D`)}for(let i of o.warnings)C.push(`${t}\uFF1A${i}\uFF08F21\uFF1B\u5B8C\u6210\u683C\u5F0F\u6765\u6E90\u4FEE\u590D\u540E\u518D\u9A8C\u6536\uFF09`)}L("\u4EA7\u54C1\u4E3B\u9898\u9002\u914D\uFF08\u6D88\u8D39\u5E73\u53F0\u53D8\u91CF\uFF0C\u4FDD\u7559 scoped\uFF09");var be=[];for(let e of[...M,...lt]){let t=P.relative(_,e),n=[...I].reverse().find(i=>i.file===t&&!i.remove),o=Ie(n?n.after:v.readFileSync(e,"utf8"),{filename:e});if(o.count){n?n.after=o.src:I.push({file:t,after:o.src});for(let i of o.fixes)be.push(`${t}:${i.line}\uFF1A${i.before} \u2192 ${i.after}`);m(` \u2713 ${t}\uFF1A${o.count} \u5904\u4E3B\u9898\u53D8\u91CF\u9002\u914D`)}for(let i of o.warnings)C.push(`${t}\uFF1A${i}\uFF08E2\uFF1B\u8FFD\u8E2A\u5B9E\u9645\u6D88\u8D39\u573A\u666F\u540E\u5B8C\u6210\u4E3B\u9898\u9002\u914D\uFF09`)}if(O){L("@epxing \u72EC\u7ACB\u5305\u5165\u53E3\u4E0E\u4F9D\u8D56\u8FC1\u79FB");let t=it({read:l(n=>[...I].reverse().find(o=>o.file.replaceAll("\\","/")===n&&!o.remove)?.after??F(n),"latest"),files:M.map(n=>P.relative(_,n).replaceAll("\\","/")),packagesVersion:O,cliVersion:pt,templates:Ht,newVite:ct&&!["vite.config.mjs","vite.config.js","vite.config.ts"].some(n=>F(n)!=null)});he=t.blocked;for(let n of t.changes)I.push(n);C.push(...t.manual),m(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\`${P.resolve(_)}\``,`\u6A21\u5F0F\uFF1A${W?"--apply \u5DF2\u843D\u76D8":"dry-run \u672A\u843D\u76D8"}${xe?" + gogocode \u8F6C\u6362":""}`,"",...O?["## \u72EC\u7ACB\u5305\u5207\u6362","",`\u76EE\u6807\uFF1A@epxing/* ${O}\uFF0CCLI ${pt}\u3002`,he?"\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',...xe?[]:["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",...je.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(ft).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(`
287
- `);I.push({file:"MIGRATION-REPORT.md",after:Jt});L(W?"\u843D\u76D8\uFF08--apply\uFF09":"DRY-RUN\uFF08\u672A\u5199\u6587\u4EF6\uFF09");for(let e of I){let t=V(e.file);if(e.remove){W&&!ge?(v.rmSync(t,{force:!0}),m(` \u2717 \u5220 ${e.file}`)):m(` [dry-run] \u5C06\u5220 ${e.file}`);continue}W&&!ge?(v.mkdirSync(P.dirname(t),{recursive:!0}),v.writeFileSync(t,e.after),m(` \u2713 \u5199 ${e.file}`)):ge&&e.file==="MIGRATION-REPORT.md"?(v.writeFileSync(t,e.after),m(` \u2713 \u5199 ${e.file}`)):m(` [dry-run] \u5C06\u6539 ${e.file}`)}m(`
288
- \u5B8C\u6210\u3002${W?"\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`);he&&(process.exitCode=2);
77
+ \uFF08\u6821\u9A8C\u62A5\u9519\uFF1A${c}\uFF09`);else{g(` \u2713 ${e}\uFF1A\u6CE8\u5165\u6309\u9700\u6253\u5305\u63D2\u4EF6\uFF08\u9ED8\u8BA4\u5173\uFF0Cglob='${n}'\uFF09`),r?r.after=i.src:F.push({file:e,after:i.src});let p=[...F].reverse().find(x=>x.file==="package.json"),d=null;try{d=JSON.parse(p?p.after:j("package.json")||"{}")}catch{d=null}if(!d)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:x,changed:k}=Ve(d);if(k){let w=JSON.stringify(x,null,2)+`
78
+ `;p?p.after=w:F.push({file:"package.json",after:w}),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")}}}}}}L("\u2465 \u7B2C\u4E09\u65B9\u8FD0\u884C\u65F6\u4F9D\u8D56 Vue3 \u517C\u5BB9\u6027\u626B\u63CF");var Q=[];{let e={};try{e=JSON.parse(j("package.json")||"{}").dependencies||{}}catch{e={}}let t=Object.keys(e).filter(n=>he.has(n));for(let n of t){if(te[n])continue;if(ne[n]){Q.push({name:n,kind:"known",detail:ne[n].note}),g(` \u2717 ${n}\uFF1A\u5DF2\u77E5 Vue2-only \u2014\u2014 ${ne[n].note}`);continue}let o=null;try{o=JSON.parse(v.readFileSync(O(`node_modules/${n}/package.json`),"utf8"))}catch{o=null}if(!o)continue;let r=o.peerDependencies&&o.peerDependencies.vue||o.dependencies&&o.dependencies.vue||"";r&&Jt(r)&&(Q.push({name:n,kind:"suspect",detail:`\u5176 package.json \u58F0\u660E vue \u652F\u6301 "${r}"\uFF08\u53EA\u5339\u914D Vue2\uFF09`}),g(` \xB7 ${n}\uFF1A\u7591\u4F3C Vue2-only\uFF08vue="${r}"\uFF09`))}Q.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=u(n=>/<template[\s>]/.test(n.replace(/<script[\s\S]*?<\/script>/gi,"").replace(/<style[\s\S]*?<\/style>/gi,"")),"hasSfcTemplate"),t=R.filter(n=>{let o=v.readFileSync(n,"utf8");return!e(o)&&/<style[^>]*\bscoped/.test(o)});if(t.length){L("\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 r=(v.readFileSync(n,"utf8").match(/::v-deep|:deep\(|\/deep\/|>>>/g)||[]).length;g(` \xB7 ${P.relative(T,n).replace(/\\/g,"/")}${r?`\uFF08\u542B ${r} \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=>P.relative(T,n).replace(/\\/g,"/")).join("\u3001")}`)}}var W=null;if(ut){L("V. webpack \u2192 Vite \u5F62\u6001\u8F6C\u6362");let e=[...F].reverse().find(i=>i.file==="package.json"&&!i.remove),t=[...F].reverse().find(i=>i.file===I&&!i.remove),o=Ne({projectDir:T,read:u(i=>i===I&&t?t.after:j(i),"readForVite"),epxFrameSpec:ae,basePkgRaw:e?e.after:null});W=o.info;for(let i of o.changes){if(i.file==="package.json"&&!i.remove&&e){e.after=i.after,g(" \u2713 package.json\uFF08\u5E76\u5165 \u2460 \u4F9D\u8D56\u8FC1\u79FB\u4EA7\u51FA\uFF09");continue}F.push(i),g(` ${i.remove?"\u2717 \u5220":"\u2713"} ${i.file}`)}for(let i of o.manual)C.push(i);W.removedDeps&&W.removedDeps.length&&g(` \xB7 \u6458\u9664 webpack \u6784\u5EFA\u4F9D\u8D56 ${W.removedDeps.length} \u4E2A\uFF1A${W.removedDeps.join(", ")}`),g(` \xB7 \u7EC4\u4EF6\u76EE\u5F55 dirName='${W.dirName}'\uFF0ClazyLib glob='${W.glob}'`);let r=0,s=0;for(let i of V){let a=P.relative(T,i).replace(/\\/g,"/"),c=[...F].reverse().find(x=>x.file===a&&!x.remove),p=c?c.after:v.readFileSync(i,"utf8"),d=Qe(p,{isVue:i.endsWith(".vue")});d.src!==p&&(c?c.after=d.src:F.push({file:a,after:d.src}),r+=d.count,s++),d.templateAsset&&C.push(`${a}\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`)}r&&g(` \u2713 \u6E90\u7801 require.context\u2192import.meta.glob / require(\u56FE\u7247)\u2192\u9759\u6001 import\uFF1A${r} \u5904 / ${s} \u6587\u4EF6`)}L("\u8FD0\u884C\u65F6\u6807\u8BC6\uFF08runtime: vue3\uFF09");if(I){let e=[...F].reverse().find(o=>o.file===I&&!o.remove),t=e?e.after:j(I),n=ot(t);n.marked?(n.src!==t&&(e?e.after=n.src:F.push({file:I,after:n.src})),g(` \u2713 ${I}\uFF1A\u9ED8\u8BA4\u5BFC\u51FA\u5305\u542B runtime: 'vue3'`)):(C.push(`${I} \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 ${I}\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");L("\u65E5\u671F\u63A7\u4EF6\u683C\u5F0F\uFF08Element UI \u2192 Element Plus\uFF09");var xe=[];for(let e of V){let t=P.relative(T,e),n=F.find(r=>r.file===t&&!r.remove),o=$e(n?n.after:v.readFileSync(e,"utf8"),{filename:e});if(o.count){n?n.after=o.src:F.push({file:t,after:o.src});for(let r of o.fixes)xe.push(`${t}:${r.line}\uFF1A${r.before} \u2192 ${r.after}`);g(` \u2713 ${t}\uFF1A${o.count} \u5904\u65E5\u671F\u683C\u5F0F\u4FEE\u590D`)}for(let r of o.warnings)C.push(`${t}\uFF1A${r}\uFF08F21\uFF1B\u5B8C\u6210\u683C\u5F0F\u6765\u6E90\u4FEE\u590D\u540E\u518D\u9A8C\u6536\uFF09`)}L("\u4EA7\u54C1\u4E3B\u9898\u9002\u914D\uFF08\u6D88\u8D39\u5E73\u53F0\u53D8\u91CF\uFF0C\u4FDD\u7559 scoped\uFF09");var be=[];for(let e of[...V,...gt]){let t=P.relative(T,e),n=[...F].reverse().find(r=>r.file===t&&!r.remove),o=Ce(n?n.after:v.readFileSync(e,"utf8"),{filename:e});if(o.count){n?n.after=o.src:F.push({file:t,after:o.src});for(let r of o.fixes)be.push(`${t}:${r.line}\uFF1A${r.before} \u2192 ${r.after}`);g(` \u2713 ${t}\uFF1A${o.count} \u5904\u4E3B\u9898\u53D8\u91CF\u9002\u914D`)}for(let r of o.warnings)C.push(`${t}\uFF1A${r}\uFF08E2\uFF1B\u8FFD\u8E2A\u5B9E\u9645\u6D88\u8D39\u573A\u666F\u540E\u5B8C\u6210\u4E3B\u9898\u9002\u914D\uFF09`)}if(_){L("@epxing \u72EC\u7ACB\u5305\u5165\u53E3\u4E0E\u4F9D\u8D56\u8FC1\u79FB");let t=at({read:u(n=>[...F].reverse().find(o=>o.file.replaceAll("\\","/")===n&&!o.remove)?.after??j(n),"latest"),files:V.map(n=>P.relative(T,n).replaceAll("\\","/")),packagesVersion:_,cliVersion:lt,templates:Wt,newVite:ut&&!["vite.config.mjs","vite.config.js","vite.config.ts"].some(n=>j(n)!=null)});ve=t.blocked;for(let n of t.changes)F.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 ${_}\uFF1B\u751F\u6210\u4EA7\u54C1\u4F7F\u7528\u8BF4\u660E`)}var qt=["# epx-migrate \u8FC1\u79FB\u62A5\u544A","",`\u9879\u76EE\uFF1A\`${P.resolve(T)}\``,`\u6A21\u5F0F\uFF1A${J?"--apply \u5DF2\u843D\u76D8":"dry-run \u672A\u843D\u76D8"}${fe?" + gogocode \u8F6C\u6362":""}`,"",..._?["## \u72EC\u7ACB\u5305\u5207\u6362","",`\u76EE\u6807\uFF1A@epxing/* ${_}\uFF0CCLI ${lt}\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?[]:["# \u4EC5\u4ECD\u542B Vue2 \u7EC4\u4EF6\u7684\u4EA7\u54C1\u624D\u9700\u8981\u8FFD\u52A0 --transform-vue\uFF1B\u5DF2\u662F Vue3 \u7684\u5DE5\u7A0B\u4E0D\u91CD\u590D\u8F6C\u6362\u3002"],"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',"","epxing lib \u9ED8\u8BA4\u6784\u5EFA\u6309\u9700\u4EA7\u54C1\u5E93\uFF1Bepxing lib --full \u6784\u5EFA\u5B8C\u6574\u5E93\u3002\u76F4\u63A5 npm run build:lib \u4ECD\u6309\u9879\u76EE\u811A\u672C\u6267\u884C\u3002","","```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","",..._?["## \u5E73\u53F0\u542F\u52A8\u5165\u53E3\u4E0E\u9A8C\u6536","","- \u5E73\u53F0\u4EA7\u54C1\u4F7F\u7528 createApp({ router: createFrameRouter() })\uFF0C\u4F9D\u6B21\u5B89\u88C5 Components\u3001Business \u548C\u4EA7\u54C1\u63D2\u4EF6\uFF0C\u518D mount\u3002core \u63D0\u4F9B\u8DEF\u7531\u6839\u7EC4\u4EF6\uFF1Bbusiness \u7684\u7CFB\u7EDF App \u5728\u5E94\u7528\u914D\u7F6E\u52A0\u8F7D\u540E\u8BFB\u53D6 FIRST_PAGE / MOBILE_FIRST_PAGE\u3002","- \u4EC5\u539F\u6837\u7684\u65E7\u8BA1\u6570\u6B22\u8FCE\u9875 main.js \u548C App.vue \u4F1A\u81EA\u52A8\u4FEE\u590D\uFF1B\u81EA\u5B9A\u4E49\u6839\u7EC4\u4EF6\u3001\u8DEF\u7531\u3001store \u548C HTTP \u5BA2\u6237\u7AEF\u4FDD\u7559\uFF0C\u6309\u4EA7\u54C1\u7528\u9014\u4EBA\u5DE5\u6838\u5BF9\u3002","- \u786E\u8BA4 .env.development.local \u6307\u5411\u5B9E\u9645\u540E\u7AEF\u3001\u5BA2\u6237\u7AEF\u3001\u7CFB\u7EDF\u548C\u5E94\u7528\uFF1B\u9A8C\u8BC1\u767B\u5F55\u3001\u89D2\u8272\u3001\u83DC\u5355\u3001PC/\u79FB\u52A8\u7AEF\u9996\u9875\u53CA\u4EA7\u54C1\u4E1A\u52A1\u7EC4\u4EF6\u3002","- src/main.js \u662F\u5F00\u53D1\u542F\u52A8\u5165\u53E3\uFF1Bsrc/index.js \u662F\u4EA7\u54C1\u5E93\u5165\u53E3\uFF0C\u4E0D\u80FD\u5728\u4EA7\u54C1\u5E93\u4E2D\u518D\u6B21 createApp \u6216 mount\u3002","- \u6267\u884C epxing scan . \u548C epxing verify .\uFF1B\u540E\u8005\u4F18\u5148\u8BFB\u53D6 lib \u6E05\u5355\u6216\u4EA7\u7269\uFF0C\u65E0\u4EA7\u7269\u65F6\u6839\u636E\u7EC4\u4EF6\u6536\u96C6\u5165\u53E3\u5217\u6E90\u7801\u5019\u9009\uFF0C\u4E0D\u80FD\u4EE3\u66FF\u6784\u5EFA\u540E\u53CA\u771F\u5B9E\u5E73\u53F0\u9A8C\u6536\u3002","- \u6784\u5EFA\u901A\u8FC7\u548C\u9759\u6001\u6821\u9A8C\u901A\u8FC7\u4E0D\u8868\u793A\u76EE\u6807\u73AF\u5883\u5DF2\u53D1\u5E03\u6216\u4E1A\u52A1\u5DF2\u901A\u8FC7\uFF1B\u7528\u6700\u7EC8\u4EA7\u54C1\u5E93\u5728\u771F\u5B9E\u5BBF\u4E3B\u9A8C\u6536\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",...Me.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",...xe.length?xe.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(bt).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",...Q.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","",...Q.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(`
79
+ `);F.push({file:"MIGRATION-REPORT.md",after:qt});L(J?"\u843D\u76D8\uFF08--apply\uFF09":"DRY-RUN\uFF08\u672A\u5199\u6587\u4EF6\uFF09");for(let e of F){let t=O(e.file);if(e.remove){J&&!ge?(v.rmSync(t,{force:!0}),g(` \u2717 \u5220 ${e.file}`)):g(` [dry-run] \u5C06\u5220 ${e.file}`);continue}J&&!ge?(v.mkdirSync(P.dirname(t),{recursive:!0}),v.writeFileSync(t,e.after),g(` \u2713 \u5199 ${e.file}`)):ge&&e.file==="MIGRATION-REPORT.md"?(v.writeFileSync(t,e.after),g(` \u2713 \u5199 ${e.file}`)):g(` [dry-run] \u5C06\u6539 ${e.file}`)}g(`
80
+ \u5B8C\u6210\u3002${J?"\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);