// scripts/replace-components.js
// eslint-disable-next-line @typescript-eslint/no-var-requires
const fs = require('fs-extra')
const path = require('path')
const replacements = {
// 源文件(你的组件): 目标文件(node_modules中的组件)
'./src/components/CustomTable.vue': './node_modules/some-package/src/Table.vue',
'./src/components/CustomForm.vue': './node_modules/some-package/src/Form.vue'
}
function replaceComponents() {
Object.entries(replacements).forEach(([src, dest]) => {
const srcPath = path.resolve(__dirname, '...', src)
const destPath = path.resolve(__dirname, '...', dest)
if (fs.existsSync(srcPath)) {
// 确保目标目录存在
fs.ensureDirSync(path.dirname(destPath))
// 复制文件
fs.copySync(srcPath, destPath)
console.log(`✅ 已替换: ${dest}`)
} else {
console.log(`❌ 源文件不存在: ${src}`)
}
})
}
replaceComponents()