@epxing/cli 0.5.0-beta.4 → 0.5.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/API.md +3 -3
- package/README.md +5 -1
- package/dist/skills/epxing-frontend-vue3-migrate/SKILL.md +23 -2
- package/dist/skills/epxing-frontend-vue3-migrate/pitfalls.md +624 -506
- package/dist/tools/chunks/{GPGAZS3C.mjs → 7OXB6XHJ.mjs} +17 -9
- package/dist/tools/epx-create/scaffold.mjs +13 -5
- package/dist/tools/epx-migrate/detect-vue3-risks.mjs +1 -1
- package/dist/tools/epx-migrate/migrate.mjs +55 -51
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as r}from"./OVN5O3EZ.mjs";function c(i="5.3.0-beta.2"){let s=i.match(/^[~^]?(\d+)\.(\d+)\.(\d+)(?:-([\w.-]+))?$/);if(!s)return!1;let[,p,t,e,n]=s,o=Number(p)*1e6+Number(t)*1e3+Number(e);return o!==5003e3?o>5003e3:!n||/^beta\.(\d+)$/.test(n)&&Number(n.slice(5))>=2}r(c,"usesAutomaticStyles");var m=["@epxing/core/style.css","@epxing/components/style.css","@epxing/business/style.css"],a={main:`import { createApp } from '@epxing/core'
|
|
2
2
|
import Components from '@epxing/components'
|
|
3
3
|
import Business from '@epxing/business'
|
|
4
4
|
import '@epxing/theme'
|
|
@@ -26,10 +26,10 @@ const count = ref(0)
|
|
|
26
26
|
<style scoped>
|
|
27
27
|
.product-start { padding: var(--epx-space-4, 24px); color: var(--epx-text); }
|
|
28
28
|
</style>
|
|
29
|
-
`};function
|
|
29
|
+
`};function u(i,s,p){let t=r(n=>(n||"").replaceAll(`\r
|
|
30
30
|
`,`
|
|
31
|
-
`).trim(),"normalize"),e=t(i);for(let
|
|
32
|
-
`,"");return e===t(
|
|
31
|
+
`).trim(),"normalize"),e=t(i);for(let n of m)e=e.replace(`import '${n}'
|
|
32
|
+
`,"");return e===t(a.main)&&t(s)===t(a.app.replaceAll("__NAME__",p))}r(u,"isLegacyWelcomeProduct");function d(i,s){let p={...i,"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)+`
|
|
33
33
|
`,"vite.config.mjs":`import path from 'node:path'
|
|
34
34
|
import { fileURLToPath } from 'node:url'
|
|
35
35
|
import { createRequire } from 'node:module'
|
|
@@ -80,15 +80,18 @@ export default defineConfig(({ command, mode }) => {
|
|
|
80
80
|
}
|
|
81
81
|
})
|
|
82
82
|
`,"src/main.js":`import { createApp, createFrameRouter } from '@epxing/core'
|
|
83
|
+
// import { installLegacyFrame } from '@epxing/core'
|
|
83
84
|
import Components from '@epxing/components'
|
|
84
85
|
import Business from '@epxing/business'
|
|
85
86
|
import '@epxing/theme'
|
|
86
87
|
import product from './index'
|
|
87
88
|
|
|
88
|
-
// \
|
|
89
|
+
// core \u63D0\u4F9B\u57FA\u7840\u8DEF\u7531\u89C6\u56FE\uFF1B\u672A\u4F7F\u7528\u4E1A\u52A1\u529F\u80FD\u65F6\u53EF\u79FB\u9664 Business \u7684\u5BFC\u5165\u548C\u5B89\u88C5\u3002
|
|
89
90
|
const app = createApp({ router: createFrameRouter() })
|
|
90
91
|
app.use(Components)
|
|
91
92
|
app.use(Business)
|
|
93
|
+
// \u9700\u8981\u52A0\u8F7D\u4F9D\u8D56 window.frame \u7684\u65E7\u8FDC\u7A0B\u5E93\u65F6\uFF0C\u53D6\u6D88\u5BFC\u5165\u4E0E\u8C03\u7528\u7684\u6CE8\u91CA\uFF08core >= 5.3.0-beta.5\uFF09\u3002
|
|
94
|
+
// installLegacyFrame(app)
|
|
92
95
|
app.use(product)
|
|
93
96
|
app.mount('#app')
|
|
94
97
|
`,"src/__DIRNAME__/DemoList.vue":`<script>
|
|
@@ -118,9 +121,9 @@ npm run build:app
|
|
|
118
121
|
\`\`\`
|
|
119
122
|
|
|
120
123
|
\u672C\u5730\u9884\u89C8\u9ED8\u8BA4\u7AEF\u53E3 8080\uFF0C\u9ED8\u8BA4\u6253\u5F00\u5E73\u53F0\u7CFB\u7EDF\u3002\u542F\u52A8\u524D\u5728 .env.development.local \u914D\u7F6E\u540E\u7AEF\u53CA\u5BA2\u6237\u7AEF\u3001\u7CFB\u7EDF\u3001\u5E94\u7528\u53C2\u6570\uFF1B\u767B\u5F55\u3001\u83DC\u5355\u548C\u9996\u9875\u4F7F\u7528\u5E73\u53F0\u914D\u7F6E\u3002
|
|
121
|
-
`,"PRODUCT-GUIDE.md":
|
|
124
|
+
`,"PRODUCT-GUIDE.md":l};if(!c(s)){let t=m.map(e=>`import '${e}'`).join(`
|
|
122
125
|
`);for(let e of["src/main.js","PRODUCT-GUIDE.md"])p[e]=p[e].replace("import '@epxing/theme'",`import '@epxing/theme'
|
|
123
|
-
`+t)}return p}
|
|
126
|
+
`+t)}return p}r(d,"createPackageTemplates");var l=`# \u4EA7\u54C1\u5F00\u53D1\u4E0E\u5347\u7EA7\u4F7F\u7528\u8BF4\u660E
|
|
124
127
|
|
|
125
128
|
<!-- epxing-generated-product-guide -->
|
|
126
129
|
|
|
@@ -141,6 +144,7 @@ npm run dev
|
|
|
141
144
|
|
|
142
145
|
\`\`\`js
|
|
143
146
|
import { createApp, createFrameRouter } from '@epxing/core'
|
|
147
|
+
// import { installLegacyFrame } from '@epxing/core'
|
|
144
148
|
import Components from '@epxing/components'
|
|
145
149
|
import Business from '@epxing/business'
|
|
146
150
|
import '@epxing/theme'
|
|
@@ -149,17 +153,21 @@ import product from './index'
|
|
|
149
153
|
const app = createApp({ router: createFrameRouter() })
|
|
150
154
|
app.use(Components)
|
|
151
155
|
app.use(Business)
|
|
156
|
+
// \u9700\u8981\u52A0\u8F7D\u4F9D\u8D56 window.frame \u7684\u65E7\u8FDC\u7A0B\u5E93\u65F6\uFF0C\u53D6\u6D88\u5BFC\u5165\u4E0E\u8C03\u7528\u7684\u6CE8\u91CA\uFF08core >= 5.3.0-beta.5\uFF09\u3002
|
|
157
|
+
// installLegacyFrame(app)
|
|
152
158
|
app.use(product)
|
|
153
159
|
app.mount('#app')
|
|
154
160
|
\`\`\`
|
|
155
161
|
|
|
156
162
|
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
|
|
157
163
|
|
|
164
|
+
installLegacyFrame \u9ED8\u8BA4\u6CE8\u91CA\uFF0C\u9700\u517C\u5BB9\u4F9D\u8D56 window.frame \u7684\u65E7\u8FDC\u7A0B\u5E93\u65F6\u624B\u52A8\u53D6\u6D88\u4E24\u5904\u6CE8\u91CA\u3002\u8981\u6C42 core 5.3.0-beta.5 \u6216\u4EE5\u4E0A\u7248\u672C\uFF0C\u5728\u6240\u9700\u7EC4\u4EF6\u5305\u5B89\u88C5\u540E\u3001\u8FDC\u7A0B\u5E93\u52A0\u8F7D\u524D\u8C03\u7528\uFF1B\u5B83\u590D\u7528\u5DF2\u5B89\u88C5\u5305\u7684\u5171\u4EAB\u7EC4\u4EF6\uFF0C\u4E0D\u81EA\u52A8\u5B89\u88C5 business \u6216 dashboard\u3002\u65E7\u63D2\u4EF6\u7684 Vue2 \u6E32\u67D3\u517C\u5BB9\u4ECD\u7531\u8FDC\u7A0B\u52A0\u8F7D\u5668\u81EA\u52A8\u9009\u62E9\u3002
|
|
165
|
+
|
|
158
166
|
\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
|
|
159
167
|
|
|
160
168
|
\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
|
|
161
169
|
|
|
162
|
-
\u9ED8\u8BA4\u6839\u7EC4\u4EF6\u7531 core \u63D0\u4F9B\uFF0C\u8D1F\u8D23\u8DEF\u7531\u51FA\u53E3\u3001\u8DEF\u7531\u5237\u65B0\u7B56\u7565\u548C\u4E3B\u9898\u521D\u59CB\u5316\uFF1BcreateFrameRouter \u63D0\u4F9B\u5E73\u53F0\u8DEF\u7531\u548C\u767B\u5F55\u5B88\u536B\
|
|
170
|
+
\u9ED8\u8BA4\u6839\u7EC4\u4EF6\u7531 core \u63D0\u4F9B\uFF0C\u8D1F\u8D23\u8DEF\u7531\u51FA\u53E3\u3001\u8DEF\u7531\u5237\u65B0\u7B56\u7565\u548C\u4E3B\u9898\u521D\u59CB\u5316\uFF1BcreateFrameRouter \u63D0\u4F9B\u5E73\u53F0\u8DEF\u7531\u548C\u767B\u5F55\u5B88\u536B\u3002core \u63D0\u4F9B\u7684 App \u5728\u5E94\u7528\u914D\u7F6E\u52A0\u8F7D\u540E\u8BFB\u53D6 FIRST_PAGE / MOBILE_FIRST_PAGE\uFF0C\u8FDB\u5165\u7CFB\u7EDF\u9996\u9875\uFF0C\u4E0D\u5E94\u76F4\u63A5\u66FF\u6362\u6700\u5916\u5C42\u8DEF\u7531\u6839\u7EC4\u4EF6\u3002components \u63D0\u4F9B AppIndex\u3001\u767B\u5F55\u548C\u57FA\u7840\u7EC4\u4EF6\uFF0C\u4EA7\u54C1\u901A\u8FC7 app.use(product) \u6CE8\u518C\u81EA\u5DF1\u7684\u7EC4\u4EF6\u3002\u672A\u4F7F\u7528\u5F85\u529E\u3001\u5E2E\u52A9\u7B49\u4E1A\u52A1\u529F\u80FD\u65F6\uFF0C\u53EF\u79FB\u9664 Business \u7684\u5BFC\u5165\u548C\u5B89\u88C5\u3002
|
|
163
171
|
|
|
164
172
|
\u9700\u8981\u5B8C\u5168\u81EA\u5EFA\u5E94\u7528\u65F6\uFF0C\u624D\u4F20\u5165\u81EA\u5DF1\u7684 rootComponent\u3001router \u6216 routes\u3002\u4EA7\u54C1\u7EC4\u4EF6\u653E\u5728 src/__DIRNAME__/\uFF0C\u901A\u8FC7\u5E73\u53F0\u9875\u9762\u7EC4\u4EF6\u914D\u7F6E\u4F7F\u7528\uFF1B\u5F00\u53D1\u5165\u53E3 src/main.js \u4E0D\u8FDB\u5165\u8FDC\u7A0B\u4EA7\u54C1\u5E93\uFF0C\u5E93\u6784\u5EFA\u53EA\u8BFB\u53D6 src/index.js\u3002
|
|
165
173
|
|
|
@@ -224,4 +232,4 @@ epxing --version
|
|
|
224
232
|
\`\`\`
|
|
225
233
|
|
|
226
234
|
\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
|
|
227
|
-
`;export{c as a,
|
|
235
|
+
`;export{c as a,m as b,u as c,d};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var b=Object.defineProperty;var d=(i,t)=>b(i,"name",{value:t,configurable:!0});import l from"node:fs";import m from"node:path";import{execSync as v}from"node:child_process";import{fileURLToPath as h,pathToFileURL as y}from"node:url";function A(i="5.3.0-beta.2"){let t=i.match(/^[~^]?(\d+)\.(\d+)\.(\d+)(?:-([\w.-]+))?$/);if(!t)return!1;let[,o,n,p,a]=t,s=Number(o)*1e6+Number(n)*1e3+Number(p);return s!==5003e3?s>5003e3:!a||/^beta\.(\d+)$/.test(a)&&Number(a.slice(5))>=2}d(A,"usesAutomaticStyles");var I=["@epxing/core/style.css","@epxing/components/style.css","@epxing/business/style.css"];function g(i,t){let o={...i,"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)+`
|
|
2
2
|
`,"vite.config.mjs":`import path from 'node:path'
|
|
3
3
|
import { fileURLToPath } from 'node:url'
|
|
4
4
|
import { createRequire } from 'node:module'
|
|
@@ -49,15 +49,18 @@ export default defineConfig(({ command, mode }) => {
|
|
|
49
49
|
}
|
|
50
50
|
})
|
|
51
51
|
`,"src/main.js":`import { createApp, createFrameRouter } from '@epxing/core'
|
|
52
|
+
// import { installLegacyFrame } from '@epxing/core'
|
|
52
53
|
import Components from '@epxing/components'
|
|
53
54
|
import Business from '@epxing/business'
|
|
54
55
|
import '@epxing/theme'
|
|
55
56
|
import product from './index'
|
|
56
57
|
|
|
57
|
-
// \
|
|
58
|
+
// core \u63D0\u4F9B\u57FA\u7840\u8DEF\u7531\u89C6\u56FE\uFF1B\u672A\u4F7F\u7528\u4E1A\u52A1\u529F\u80FD\u65F6\u53EF\u79FB\u9664 Business \u7684\u5BFC\u5165\u548C\u5B89\u88C5\u3002
|
|
58
59
|
const app = createApp({ router: createFrameRouter() })
|
|
59
60
|
app.use(Components)
|
|
60
61
|
app.use(Business)
|
|
62
|
+
// \u9700\u8981\u52A0\u8F7D\u4F9D\u8D56 window.frame \u7684\u65E7\u8FDC\u7A0B\u5E93\u65F6\uFF0C\u53D6\u6D88\u5BFC\u5165\u4E0E\u8C03\u7528\u7684\u6CE8\u91CA\uFF08core >= 5.3.0-beta.5\uFF09\u3002
|
|
63
|
+
// installLegacyFrame(app)
|
|
61
64
|
app.use(product)
|
|
62
65
|
app.mount('#app')
|
|
63
66
|
`,"src/__DIRNAME__/DemoList.vue":`<script>
|
|
@@ -87,7 +90,7 @@ npm run build:app
|
|
|
87
90
|
\`\`\`
|
|
88
91
|
|
|
89
92
|
\u672C\u5730\u9884\u89C8\u9ED8\u8BA4\u7AEF\u53E3 8080\uFF0C\u9ED8\u8BA4\u6253\u5F00\u5E73\u53F0\u7CFB\u7EDF\u3002\u542F\u52A8\u524D\u5728 .env.development.local \u914D\u7F6E\u540E\u7AEF\u53CA\u5BA2\u6237\u7AEF\u3001\u7CFB\u7EDF\u3001\u5E94\u7528\u53C2\u6570\uFF1B\u767B\u5F55\u3001\u83DC\u5355\u548C\u9996\u9875\u4F7F\u7528\u5E73\u53F0\u914D\u7F6E\u3002
|
|
90
|
-
`,"PRODUCT-GUIDE.md":S};if(!
|
|
93
|
+
`,"PRODUCT-GUIDE.md":S};if(!A(t)){let n=I.map(p=>`import '${p}'`).join(`
|
|
91
94
|
`);for(let p of["src/main.js","PRODUCT-GUIDE.md"])o[p]=o[p].replace("import '@epxing/theme'",`import '@epxing/theme'
|
|
92
95
|
`+n)}return o}d(g,"createPackageTemplates");var S=`# \u4EA7\u54C1\u5F00\u53D1\u4E0E\u5347\u7EA7\u4F7F\u7528\u8BF4\u660E
|
|
93
96
|
|
|
@@ -110,6 +113,7 @@ npm run dev
|
|
|
110
113
|
|
|
111
114
|
\`\`\`js
|
|
112
115
|
import { createApp, createFrameRouter } from '@epxing/core'
|
|
116
|
+
// import { installLegacyFrame } from '@epxing/core'
|
|
113
117
|
import Components from '@epxing/components'
|
|
114
118
|
import Business from '@epxing/business'
|
|
115
119
|
import '@epxing/theme'
|
|
@@ -118,17 +122,21 @@ import product from './index'
|
|
|
118
122
|
const app = createApp({ router: createFrameRouter() })
|
|
119
123
|
app.use(Components)
|
|
120
124
|
app.use(Business)
|
|
125
|
+
// \u9700\u8981\u52A0\u8F7D\u4F9D\u8D56 window.frame \u7684\u65E7\u8FDC\u7A0B\u5E93\u65F6\uFF0C\u53D6\u6D88\u5BFC\u5165\u4E0E\u8C03\u7528\u7684\u6CE8\u91CA\uFF08core >= 5.3.0-beta.5\uFF09\u3002
|
|
126
|
+
// installLegacyFrame(app)
|
|
121
127
|
app.use(product)
|
|
122
128
|
app.mount('#app')
|
|
123
129
|
\`\`\`
|
|
124
130
|
|
|
125
131
|
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
|
|
126
132
|
|
|
133
|
+
installLegacyFrame \u9ED8\u8BA4\u6CE8\u91CA\uFF0C\u9700\u517C\u5BB9\u4F9D\u8D56 window.frame \u7684\u65E7\u8FDC\u7A0B\u5E93\u65F6\u624B\u52A8\u53D6\u6D88\u4E24\u5904\u6CE8\u91CA\u3002\u8981\u6C42 core 5.3.0-beta.5 \u6216\u4EE5\u4E0A\u7248\u672C\uFF0C\u5728\u6240\u9700\u7EC4\u4EF6\u5305\u5B89\u88C5\u540E\u3001\u8FDC\u7A0B\u5E93\u52A0\u8F7D\u524D\u8C03\u7528\uFF1B\u5B83\u590D\u7528\u5DF2\u5B89\u88C5\u5305\u7684\u5171\u4EAB\u7EC4\u4EF6\uFF0C\u4E0D\u81EA\u52A8\u5B89\u88C5 business \u6216 dashboard\u3002\u65E7\u63D2\u4EF6\u7684 Vue2 \u6E32\u67D3\u517C\u5BB9\u4ECD\u7531\u8FDC\u7A0B\u52A0\u8F7D\u5668\u81EA\u52A8\u9009\u62E9\u3002
|
|
134
|
+
|
|
127
135
|
\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
|
|
128
136
|
|
|
129
137
|
\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
|
|
130
138
|
|
|
131
|
-
\u9ED8\u8BA4\u6839\u7EC4\u4EF6\u7531 core \u63D0\u4F9B\uFF0C\u8D1F\u8D23\u8DEF\u7531\u51FA\u53E3\u3001\u8DEF\u7531\u5237\u65B0\u7B56\u7565\u548C\u4E3B\u9898\u521D\u59CB\u5316\uFF1BcreateFrameRouter \u63D0\u4F9B\u5E73\u53F0\u8DEF\u7531\u548C\u767B\u5F55\u5B88\u536B\
|
|
139
|
+
\u9ED8\u8BA4\u6839\u7EC4\u4EF6\u7531 core \u63D0\u4F9B\uFF0C\u8D1F\u8D23\u8DEF\u7531\u51FA\u53E3\u3001\u8DEF\u7531\u5237\u65B0\u7B56\u7565\u548C\u4E3B\u9898\u521D\u59CB\u5316\uFF1BcreateFrameRouter \u63D0\u4F9B\u5E73\u53F0\u8DEF\u7531\u548C\u767B\u5F55\u5B88\u536B\u3002core \u63D0\u4F9B\u7684 App \u5728\u5E94\u7528\u914D\u7F6E\u52A0\u8F7D\u540E\u8BFB\u53D6 FIRST_PAGE / MOBILE_FIRST_PAGE\uFF0C\u8FDB\u5165\u7CFB\u7EDF\u9996\u9875\uFF0C\u4E0D\u5E94\u76F4\u63A5\u66FF\u6362\u6700\u5916\u5C42\u8DEF\u7531\u6839\u7EC4\u4EF6\u3002components \u63D0\u4F9B AppIndex\u3001\u767B\u5F55\u548C\u57FA\u7840\u7EC4\u4EF6\uFF0C\u4EA7\u54C1\u901A\u8FC7 app.use(product) \u6CE8\u518C\u81EA\u5DF1\u7684\u7EC4\u4EF6\u3002\u672A\u4F7F\u7528\u5F85\u529E\u3001\u5E2E\u52A9\u7B49\u4E1A\u52A1\u529F\u80FD\u65F6\uFF0C\u53EF\u79FB\u9664 Business \u7684\u5BFC\u5165\u548C\u5B89\u88C5\u3002
|
|
132
140
|
|
|
133
141
|
\u9700\u8981\u5B8C\u5168\u81EA\u5EFA\u5E94\u7528\u65F6\uFF0C\u624D\u4F20\u5165\u81EA\u5DF1\u7684 rootComponent\u3001router \u6216 routes\u3002\u4EA7\u54C1\u7EC4\u4EF6\u653E\u5728 src/__DIRNAME__/\uFF0C\u901A\u8FC7\u5E73\u53F0\u9875\u9762\u7EC4\u4EF6\u914D\u7F6E\u4F7F\u7528\uFF1B\u5F00\u53D1\u5165\u53E3 src/main.js \u4E0D\u8FDB\u5165\u8FDC\u7A0B\u4EA7\u54C1\u5E93\uFF0C\u5E93\u6784\u5EFA\u53EA\u8BFB\u53D6 src/index.js\u3002
|
|
134
142
|
|
|
@@ -435,7 +443,7 @@ dist/
|
|
|
435
443
|
*.tgz
|
|
436
444
|
.DS_Store
|
|
437
445
|
.env*.local
|
|
438
|
-
`;r["README.md"]='# __NAME__\n\nepx-frame \u4EA7\u54C1\u8FDC\u7A0B\u5E93\u9879\u76EE\uFF08Vite \u5F62\u6001\uFF09\u3002\u5F00\u53D1\u6307\u5357\u89C1 epx-frame \u4ED3\u5E93 `docs/PROJECT-GUIDE.md`\u3002\n\n```bash\nnpm i # \u88C5\u4F9D\u8D56\nnpm run dev # \u672C\u5730\u5F00\u53D1\uFF08:8080\uFF0C\u8D77\u5B8C\u6574\u5E73\u53F0\uFF0C\u7528\u5E73\u53F0\u8D26\u53F7\u767B\u5F55\uFF09\nnpm run build:lib # \u6784\u5EFA\u8FDC\u7A0B\u5E93 lib/index.js + index.css\n```\n\n\u90E8\u7F72\uFF1Alib \u4EA7\u7269\u53D1\u5230\u6587\u4EF6\u670D\u52A1\uFF0C\u5E73\u53F0 FM_SYSTEM_WEBPACK \u7ED9\u672C\u7CFB\u7EDF\u914D js/css \u4E24\u6761 url\u3002\n`lib/index.deps.json`\uFF08\u4F9D\u8D56\u6E05\u5355\uFF09**\u8981\u548C index.js \u540C\u76EE\u5F55\u540C\u540D\u4E00\u8D77\u4F20**\uFF0C\u4F46**\u4E0D\u7528**\u5355\u72EC\u914D url\u2014\u2014\n\u5E73\u53F0\u6309 js url \u63A8\u5BFC\u5B83\uFF0C\u52A0\u8F7D\u672C\u5E93\u524D\u5148\u5907\u597D\u7528\u5230\u7684\u61D2\u52A0\u8F7D\u5E73\u53F0\u7EC4\u4EF6\uFF1B\u6F0F\u4F20\u53EA\u4F1A\u9759\u9ED8\u9000\u5316\u4E3A\u300C\u5907\u5168\u90E8\u300D\uFF08\u591A\u4E0B\u70B9 chunk\uFF09\u3002\n\u7EC4\u4EF6\u547D\u540D\uFF1A`epx-__NAME__-<\u57DF>-<\u540D>`\uFF08\u5168\u5E73\u53F0\u552F\u4E00\uFF09\uFF1B\u65B0\u589E .vue \u5373\u81EA\u52A8\u6CE8\u518C\u3002\n\n\u6846\u67B6\u5F15\u7528\u662F**\u6309\u9700\u5B50\u8DEF\u5F84**\u5F62\u6001\uFF08`epx-frame/core` + `epx-frame/components`\uFF0C\u89C1 src/main.js \u6CE8\u91CA\uFF09\uFF1A\nbusiness/designer/dashboard \u4E0D\u88C5\u4E5F\u4F1A\u5728\u8FD0\u884C\u65F6\u6309\u9700\u61D2\u52A0\u8F7D\uFF1B\u7EC4\u4EF6\u6E90\u7801\u91CC\u4E5F\u4ECE `epx-frame/components`\n\u5BFC\u5165\u7EE7\u627F\uFF08\u522B\u548C\u805A\u5408\u5165\u53E3 `epx-frame` \u6DF7\u7528\u2014\u2014\u4F1A\u51FA\u73B0\u4E24\u5957\u8FD0\u884C\u65F6\uFF09\u3002\n\n## \u56FE\u6807\n\n**461 \u4E2A\u5E73\u53F0\u56FE\u6807\u76F4\u63A5\u5199\u5C31\u884C\uFF0C\u96F6\u914D\u7F6E**\u2014\u2014\u5B83\u4EEC\u968F epx-frame \u53D1\u5E03\uFF0C\u62FF\u5230\u5373\u7528\uFF1A\n\n```vue\n<i class="el-icon-search"></i>\n<i class="epx-icon-shezhi"></i>\n```\n\n`font-size` \u63A7\u5236\u5927\u5C0F\u3001`color` \u63A7\u5236\u989C\u8272\uFF08\u5E95\u5C42\u662F CSS mask + currentColor\uFF09\u3002\n\n\u60F3\u7528\u5E73\u53F0\u6CA1\u6709\u7684\u56FE\u6807\uFF0C\u76F4\u63A5\u5199 [Remix Icon](https://remixicon.com) \u7684\u540D\u5B57\uFF1A\n\n```vue\n<i class="ri-rocket-line"></i>\n```\n\n**\u8981\u5148 `npm i -D @iconify-json/ri`**\uFF083229 \u4E2A\u56FE\u6807\u7684\u6570\u636E\u6E90\uFF0C\u53EA\u5728\u6784\u5EFA\u671F\u8BFB\u4E00\u6B21\uFF0C\u4E0D\u8FDB\u4EA7\u7269\uFF09\u3002\n`vite.config.mjs` \u91CC\u7684 `epxIcons()` \u4F1A\u626B\u6E90\u7801\u3001\u53EA\u4E3A**\u4F60\u5B9E\u9645\u7528\u5230\u7684**\u90A3\u51E0\u4E2A\u751F\u6210\u89C4\u5219\u2014\u2014\n\u5199 5 \u4E2A\u5C31\u662F 5 \u4E2A\u7684\u4F53\u79EF\uFF0C\u4E0D\u4F1A\u628A 3229 \u4E2A\u90FD\u6253\u8FDB\u53BB\u3002\u540D\u5B57\u62FC\u9519\u4E86\u4F1A\u5728\u6784\u5EFA\u65F6\u62A5\u51FA\u6765\uFF0C\u4E0D\u4F1A\u9759\u9ED8\u53D8\u7A7A\u767D\u3002\n\n\u56FE\u6807\u540D\u5B58\u5728**\u6570\u636E\u5E93**\u91CC\uFF08\u83DC\u5355\u56FE\u6807\u3001\u6309\u94AE iconCls\u3001\u9875\u9762\u914D\u7F6E\uFF09\u7684\u90A3\u4E9B\uFF0C\u6784\u5EFA\u671F\u626B\u4E0D\u5230\u2014\u2014\n\u4F46\u5E73\u53F0\u8FD0\u884C\u65F6\u4F1A\u6309\u9700\u8865\u9F50\uFF0C\u4F60\u4E0D\u7528\u505A\u4EFB\u4F55\u4E8B\u3002\u5B8C\u6574\u8BF4\u660E\u89C1 epx-frame \u4ED3\u5E93 `docs/guide/tools/icon.md`\u3002\n\n\u540E\u7AEF\u5730\u5740\u7B49\u73AF\u5883\u914D\u7F6E\u5728 `.env.development`\uFF1B\u672C\u673A\u60F3\u8FDE\u522B\u7684\u540E\u7AEF\uFF0C\u65B0\u5EFA `.env.development.local`\n\uFF08\u4E0D\u8FDB git\uFF09\u8986\u76D6\u5BF9\u5E94\u884C\uFF08\u5982 `IP=https://test.epxing.com:88/`\uFF09\uFF0C\u91CD\u542F dev \u751F\u6548\u3002\n\n\u521B\u5EFA\u547D\u4EE4\u5DF2\u5728 package.json \u5199\u5165 `runtime: "vue3"`\uFF0C\u5E76\u7531 src/index.js \u9ED8\u8BA4\u5BFC\u51FA\u540C\u540D\u6807\u8BC6\u3002\n\u6784\u5EFA\u90E8\u7F72\u540E\u5E73\u53F0\u6309\u5305\u9009\u62E9\u5B89\u88C5\u65B9\u5F0F\uFF1A`vue3` \u8D70\u539F\u751F\u5B89\u88C5\uFF0C`vue2` \u6216\u672A\u6807\u8BC6\u7684\u5176\u5B83\u5E93\u7EE7\u7EED\u4F7F\u7528\u517C\u5BB9\u6865\u3002\n';function j({name:i,dir:t,epxFrameSpec:o,packagesVersion:n,cliVersion:p="0.5.0-beta.
|
|
446
|
+
`;r["README.md"]='# __NAME__\n\nepx-frame \u4EA7\u54C1\u8FDC\u7A0B\u5E93\u9879\u76EE\uFF08Vite \u5F62\u6001\uFF09\u3002\u5F00\u53D1\u6307\u5357\u89C1 epx-frame \u4ED3\u5E93 `docs/PROJECT-GUIDE.md`\u3002\n\n```bash\nnpm i # \u88C5\u4F9D\u8D56\nnpm run dev # \u672C\u5730\u5F00\u53D1\uFF08:8080\uFF0C\u8D77\u5B8C\u6574\u5E73\u53F0\uFF0C\u7528\u5E73\u53F0\u8D26\u53F7\u767B\u5F55\uFF09\nnpm run build:lib # \u6784\u5EFA\u8FDC\u7A0B\u5E93 lib/index.js + index.css\n```\n\n\u90E8\u7F72\uFF1Alib \u4EA7\u7269\u53D1\u5230\u6587\u4EF6\u670D\u52A1\uFF0C\u5E73\u53F0 FM_SYSTEM_WEBPACK \u7ED9\u672C\u7CFB\u7EDF\u914D js/css \u4E24\u6761 url\u3002\n`lib/index.deps.json`\uFF08\u4F9D\u8D56\u6E05\u5355\uFF09**\u8981\u548C index.js \u540C\u76EE\u5F55\u540C\u540D\u4E00\u8D77\u4F20**\uFF0C\u4F46**\u4E0D\u7528**\u5355\u72EC\u914D url\u2014\u2014\n\u5E73\u53F0\u6309 js url \u63A8\u5BFC\u5B83\uFF0C\u52A0\u8F7D\u672C\u5E93\u524D\u5148\u5907\u597D\u7528\u5230\u7684\u61D2\u52A0\u8F7D\u5E73\u53F0\u7EC4\u4EF6\uFF1B\u6F0F\u4F20\u53EA\u4F1A\u9759\u9ED8\u9000\u5316\u4E3A\u300C\u5907\u5168\u90E8\u300D\uFF08\u591A\u4E0B\u70B9 chunk\uFF09\u3002\n\u7EC4\u4EF6\u547D\u540D\uFF1A`epx-__NAME__-<\u57DF>-<\u540D>`\uFF08\u5168\u5E73\u53F0\u552F\u4E00\uFF09\uFF1B\u65B0\u589E .vue \u5373\u81EA\u52A8\u6CE8\u518C\u3002\n\n\u6846\u67B6\u5F15\u7528\u662F**\u6309\u9700\u5B50\u8DEF\u5F84**\u5F62\u6001\uFF08`epx-frame/core` + `epx-frame/components`\uFF0C\u89C1 src/main.js \u6CE8\u91CA\uFF09\uFF1A\nbusiness/designer/dashboard \u4E0D\u88C5\u4E5F\u4F1A\u5728\u8FD0\u884C\u65F6\u6309\u9700\u61D2\u52A0\u8F7D\uFF1B\u7EC4\u4EF6\u6E90\u7801\u91CC\u4E5F\u4ECE `epx-frame/components`\n\u5BFC\u5165\u7EE7\u627F\uFF08\u522B\u548C\u805A\u5408\u5165\u53E3 `epx-frame` \u6DF7\u7528\u2014\u2014\u4F1A\u51FA\u73B0\u4E24\u5957\u8FD0\u884C\u65F6\uFF09\u3002\n\n## \u56FE\u6807\n\n**461 \u4E2A\u5E73\u53F0\u56FE\u6807\u76F4\u63A5\u5199\u5C31\u884C\uFF0C\u96F6\u914D\u7F6E**\u2014\u2014\u5B83\u4EEC\u968F epx-frame \u53D1\u5E03\uFF0C\u62FF\u5230\u5373\u7528\uFF1A\n\n```vue\n<i class="el-icon-search"></i>\n<i class="epx-icon-shezhi"></i>\n```\n\n`font-size` \u63A7\u5236\u5927\u5C0F\u3001`color` \u63A7\u5236\u989C\u8272\uFF08\u5E95\u5C42\u662F CSS mask + currentColor\uFF09\u3002\n\n\u60F3\u7528\u5E73\u53F0\u6CA1\u6709\u7684\u56FE\u6807\uFF0C\u76F4\u63A5\u5199 [Remix Icon](https://remixicon.com) \u7684\u540D\u5B57\uFF1A\n\n```vue\n<i class="ri-rocket-line"></i>\n```\n\n**\u8981\u5148 `npm i -D @iconify-json/ri`**\uFF083229 \u4E2A\u56FE\u6807\u7684\u6570\u636E\u6E90\uFF0C\u53EA\u5728\u6784\u5EFA\u671F\u8BFB\u4E00\u6B21\uFF0C\u4E0D\u8FDB\u4EA7\u7269\uFF09\u3002\n`vite.config.mjs` \u91CC\u7684 `epxIcons()` \u4F1A\u626B\u6E90\u7801\u3001\u53EA\u4E3A**\u4F60\u5B9E\u9645\u7528\u5230\u7684**\u90A3\u51E0\u4E2A\u751F\u6210\u89C4\u5219\u2014\u2014\n\u5199 5 \u4E2A\u5C31\u662F 5 \u4E2A\u7684\u4F53\u79EF\uFF0C\u4E0D\u4F1A\u628A 3229 \u4E2A\u90FD\u6253\u8FDB\u53BB\u3002\u540D\u5B57\u62FC\u9519\u4E86\u4F1A\u5728\u6784\u5EFA\u65F6\u62A5\u51FA\u6765\uFF0C\u4E0D\u4F1A\u9759\u9ED8\u53D8\u7A7A\u767D\u3002\n\n\u56FE\u6807\u540D\u5B58\u5728**\u6570\u636E\u5E93**\u91CC\uFF08\u83DC\u5355\u56FE\u6807\u3001\u6309\u94AE iconCls\u3001\u9875\u9762\u914D\u7F6E\uFF09\u7684\u90A3\u4E9B\uFF0C\u6784\u5EFA\u671F\u626B\u4E0D\u5230\u2014\u2014\n\u4F46\u5E73\u53F0\u8FD0\u884C\u65F6\u4F1A\u6309\u9700\u8865\u9F50\uFF0C\u4F60\u4E0D\u7528\u505A\u4EFB\u4F55\u4E8B\u3002\u5B8C\u6574\u8BF4\u660E\u89C1 epx-frame \u4ED3\u5E93 `docs/guide/tools/icon.md`\u3002\n\n\u540E\u7AEF\u5730\u5740\u7B49\u73AF\u5883\u914D\u7F6E\u5728 `.env.development`\uFF1B\u672C\u673A\u60F3\u8FDE\u522B\u7684\u540E\u7AEF\uFF0C\u65B0\u5EFA `.env.development.local`\n\uFF08\u4E0D\u8FDB git\uFF09\u8986\u76D6\u5BF9\u5E94\u884C\uFF08\u5982 `IP=https://test.epxing.com:88/`\uFF09\uFF0C\u91CD\u542F dev \u751F\u6548\u3002\n\n\u521B\u5EFA\u547D\u4EE4\u5DF2\u5728 package.json \u5199\u5165 `runtime: "vue3"`\uFF0C\u5E76\u7531 src/index.js \u9ED8\u8BA4\u5BFC\u51FA\u540C\u540D\u6807\u8BC6\u3002\n\u6784\u5EFA\u90E8\u7F72\u540E\u5E73\u53F0\u6309\u5305\u9009\u62E9\u5B89\u88C5\u65B9\u5F0F\uFF1A`vue3` \u8D70\u539F\u751F\u5B89\u88C5\uFF0C`vue2` \u6216\u672A\u6807\u8BC6\u7684\u5176\u5B83\u5E93\u7EE7\u7EED\u4F7F\u7528\u517C\u5BB9\u6865\u3002\n';function j({name:i,dir:t,epxFrameSpec:o,packagesVersion:n,cliVersion:p="0.5.0-beta.5"}){let a=i.toLowerCase(),s=i;if(!/^[a-z][a-z0-9-]*$/i.test(i))throw new Error(`\u4EA7\u54C1\u540D\u300C${i}\u300D\u9700\u4EE5\u5B57\u6BCD\u5F00\u5934\uFF0C\u4EC5\u542B\u5B57\u6BCD/\u6570\u5B57/-`);let e=m.resolve(t);if(n&&o)throw new Error("--packages-version \u4E0E --epx-frame \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A");if(n&&!/^(?:[~^]?\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");if(l.existsSync(e)&&l.readdirSync(e).length)throw new Error(`\u76EE\u6807\u76EE\u5F55\u975E\u7A7A\uFF1A${e}`);let c=o;if(l.mkdirSync(e,{recursive:!0}),!c&&!n)if(l.existsSync(m.join(_,"vite.config.mjs"))){if(!l.existsSync(m.join(_,"lib/epx-frame.common.js")))throw new Error("frame \u4ED3\u5E93 lib/ \u672A\u6784\u5EFA\u2014\u2014\u5148\u5728 frame-vue3 \u8DD1 pnpm build:component\uFF0C\u6216\u7528 --epx-frame \u6307\u5B9A\u6765\u6E90");console.log(" \u6253\u5305 epx-frame tarball\uFF08npm pack\uFF09\u2026");let u=v("npm pack --pack-destination "+JSON.stringify(e),{cwd:_,encoding:"utf8"}).trim().split(`
|
|
439
447
|
`).pop();c="file:./"+u,console.log(" \u2713 "+u)}else c="^"+JSON.parse(l.readFileSync(m.join(_,"package.json"),"utf8")).version,console.log(` epx-frame \u4F9D\u8D56 \u2192 ${c}\uFF08\u5168\u5C40\u5B89\u88C5\u6A21\u5F0F\uFF1Bnpm i \u65F6\u9700 --registry \u516C\u53F8\u6E90\uFF09`);let E=n?g(r,n):r;for(let[f,u]of Object.entries(E)){let x=m.join(e,f.replace("__DIRNAME__",s));l.mkdirSync(m.dirname(x),{recursive:!0}),l.writeFileSync(x,u.replaceAll("__NAME__",a).replaceAll("__DIRNAME__",s).replaceAll("__EPX_FRAME__",c||"").replaceAll("__PACKAGES_VERSION__",n||"").replaceAll("__CLI_VERSION__",p))}return v('git init -q && git add -A && git commit -qm "epx-create: \u9879\u76EE\u521D\u59CB\u5316\uFF08Vite \u5F62\u6001\u811A\u624B\u67B6\uFF09"',{cwd:e}),console.log(`
|
|
440
448
|
\u2713 \u9879\u76EE\u5DF2\u751F\u6210\uFF1A${e}`),n?(console.log(` npm install --prefix "${e}" --registry https://registry.npmjs.org/
|
|
441
449
|
cd "${e}"
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{c as h}from"../chunks/
|
|
2
|
+
import{c as h}from"../chunks/7OXB6XHJ.mjs";import{a as g}from"../chunks/TEF5R433.mjs";import{b as x}from"../chunks/Y7JO7Q5F.mjs";import"../chunks/SIBBFYRW.mjs";import{a as l}from"../chunks/OVN5O3EZ.mjs";import r from"node:fs";import c from"node:path";var i=process.argv.slice(2).find(e=>!e.startsWith("--"));(!i||!r.existsSync(i))&&(console.error("\u7528\u6CD5\uFF1Anode tools/epx-migrate/detect-vue3-risks.mjs <\u9879\u76EE\u76EE\u5F55>"),process.exit(1));var p=[],y=l(e=>{for(let s of r.readdirSync(e,{withFileTypes:!0})){let n=c.join(e,s.name);s.isDirectory()&&!/node_modules|\.git|^lib$|^dist$/.test(s.name)?y(n):/\.(?:vue|[cm]?js|jsx|ts|tsx)$/.test(s.name)&&p.push(n)}},"walk"),f=c.join(i,"src");r.existsSync(f)&&y(f);var o=[],a=l(e=>r.existsSync(c.join(i,e))?r.readFileSync(c.join(i,e),"utf8"):"","readIf"),$=a("package.json");$&&h(a("src/main.js"),a("src/App.vue"),JSON.parse($).name)&&o.push({file:"src/main.js",rule:"R4-platform-entry",detail:"\u65E7 CLI \u8BA1\u6570\u6B22\u8FCE\u9875\u5C1A\u672A\u63A5\u5165\u5E73\u53F0\u7CFB\u7EDF\uFF1B\u4F7F\u7528\u65B0\u7248 epxing upgrade . \u9884\u89C8\uFF0C\u518D\u52A0 --apply \u4FEE\u590D\u539F\u59CB\u5165\u53E3\u3002\u81EA\u5B9A\u4E49\u5165\u53E3\u4FDD\u7559\uFF0C\u6309\u4EA7\u54C1\u7528\u9014\u6838\u5BF9\u5E73\u53F0\u8DEF\u7531\u548C\u63D2\u4EF6\u3002"});for(let e of p){let s=r.readFileSync(e,"utf8"),n=c.relative(i,e),m=g(s,{filename:e});for(let t of m.fixes)o.push({file:`${n}:${t.line}`,rule:"R2-date-format",detail:`${t.before} \u2192 ${t.after}\uFF1B\u6267\u884C\u65E5\u671F\u683C\u5F0F\u4FEE\u590D\u5668 --apply\uFF1B\u539F\u751FVue3\u5305\u4E0D\u8D70\u65E7render\u57AB\u7247\uFF08F21\uFF09`});for(let t of m.warnings)o.push({file:n,rule:"R2-date-format\u5F85\u8FFD\u8E2A",detail:t});let S=/<template[>\s]/.test(s),d=/\bextends:\s*(\w+)/.exec(s),u=(/<style[^>]*\bscoped\b[^>]*>([\s\S]*?)<\/style>/.exec(s)||[])[1]||"";if(u&&d&&!S){let t=u.match(/^[ \t]*\.[\w-][^{}\n]*\{/gm)||[];t.length&&o.push({file:n,rule:"R1-scoped\u5F85\u590D\u6838",detail:`extends ${d[1]} + <style scoped> + \u65E0 <template>\uFF0C\u4E14 scoped \u5757\u542B ${t.length} \u4E2A\u88F8\u7C7B\u9009\u62E9\u5668\uFF08\u5982 ${t[0].trim()}\uFF09\u3002\u4EC5\u63D0\u793A\u5F85\u590D\u6838\uFF0C\u4E0D\u8BC1\u660E\u6837\u5F0F\u5931\u6548\uFF1B\u5148\u4FDD\u7559 scoped\uFF0C\u7528\u6700\u7EC8\u4EA7\u7269\u9A8C\u8BC1 DOM \u4E0E CSS \u5339\u914D\u3002\u82E5\u786E\u9700\u53BB scoped\uFF0C\u987B\u540C\u65F6\u5B8C\u6210\u552F\u4E00\u547D\u540D\u7A7A\u95F4\u9694\u79BB\uFF0C\u5E76\u590D\u6D4B\u7EC4\u4EF6\u5916\u540C\u540D\u5143\u7D20\u548C\u5176\u4ED6\u9875\u9762\uFF1B\u4E0D\u8981\u4E3A\u6D88\u9664\u544A\u8B66\u6279\u91CF\u6539\u6837\u5F0F`})}}if(r.existsSync(f))for(let e of x(i)){for(let s of e.fixes)o.push({file:`${e.file}:${s.line}`,rule:"R3-theme",detail:`${s.before} \u2192 ${s.after}\uFF1B\u6267\u884C epxing theme <\u76EE\u5F55> --apply\uFF0C\u6216\u5728\u8FC1\u79FB\u65F6\u81EA\u52A8\u9002\u914D\uFF08E2\uFF09`});for(let s of e.warnings)o.push({file:e.file,rule:"R3-theme\u5F85\u590D\u6838",detail:s})}console.log(`[detect-vue3-risks] \u626B\u63CF ${p.length} \u4E2A\u7EC4\u4EF6/\u811A\u672C\u6587\u4EF6\u53CA src \u6837\u5F0F\u6587\u4EF6`);o.length===0&&(console.log(" \u2713 \u672A\u53D1\u73B0\u5DF2\u77E5\u9759\u6001\u98CE\u9669\u6A21\u5F0F"),process.exit(0));console.log(` \u26A0 \u53D1\u73B0 ${o.length} \u5904\u5F85\u590D\u6838\u98CE\u9669\u6A21\u5F0F\uFF08\u9759\u6001\u547D\u4E2D\u4E0D\u4EE3\u8868\u8FD0\u884C\u65F6\u5DF2\u5931\u6548\uFF09\uFF1A`);for(let e of o)console.log(` [${e.rule}] ${e.file}
|
|
3
3
|
${e.detail}`);process.exit(2);
|