Files
lilishop-uniapp/scripts/migrate-uview-components.js
pikachu1995@126.com dc2bef455a refactor: 移动端升级 Vue3 + uView Plus
将 lilishop-uniapp 从 Vue2/uView 1.6 迁移到 Vue3/uview-plus,优先支持 H5/微商城与微信小程序;移除 vendored uview-ui,改用 npm 依赖、Vuex4 与迁移脚本/补丁,并补充 VUE3_MIGRATION.md 回归清单。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 18:50:38 +08:00

38 lines
1.1 KiB
JavaScript

const fs = require('fs')
const path = require('path')
const root = path.join(__dirname, '..')
function walk(dir, files = []) {
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
if (['node_modules', '.git', 'scripts'].includes(entry.name)) continue
const full = path.join(dir, entry.name)
if (entry.isDirectory()) walk(full, files)
else if (entry.name.endsWith('.vue')) files.push(full)
}
return files
}
function process(content) {
return content
.replace(/u-verification-code/g, 'u-code')
.replace(/<u-cell-item/g, '<u-cell')
.replace(/<\/u-cell-item>/g, '</u-cell>')
.replace(/:arrow="false"/g, ':isLink="false"')
.replace(/<u-loading(\s|>|\/)/g, '<u-loading-icon$1')
.replace(/<\/u-loading>/g, '</u-loading-icon>')
.replace(/<u-alert-tips/g, '<u-alert')
.replace(/<\/u-alert-tips>/g, '</u-alert>')
}
walk(root).forEach((file) => {
const original = fs.readFileSync(file, 'utf8')
const updated = process(original)
if (updated !== original) {
fs.writeFileSync(file, updated)
console.log('updated', path.relative(root, file))
}
})
console.log('uview component aliases updated')