UNPKG

press-ui

Version:

简单、易用的跨端组件库,兼容 Vue2 和 Vue3,同时支持 uni-app和普通 Vue 项目

68 lines (51 loc) 1.67 kB
const fs = require('fs'); const path = require('path'); const { readFileSync, writeFileSync, hyphenate } = require('t-comm'); const { DEMO_DIR_MAP, } = require('../utils/utils'); function updateDocsData(config, targetDir) { const compList = Object.values(config); compList.forEach((item) => { const { list } = item; list.forEach((comp) => { updateDocsUrl({ targetDir, comp }); }); }); } function updateDocsUrl({ targetDir, comp }) { const demoUrl = getDemoUrl(comp); const { name } = comp; const hyphenatedName = hyphenate(name); // 这里组件都是放在 `targetDir/packages/press-xxx` 中 const compDir = path.resolve(targetDir, 'packages', `press-${hyphenatedName}`); const readme = path.resolve(compDir, 'README.md'); const readmeEn = path.resolve(compDir, 'README.en-US.md'); realUpdateDocsUrl({ readme, demoUrl, }); realUpdateDocsUrl({ readme: readmeEn, demoUrl, }); } function realUpdateDocsUrl({ readme, demoUrl }) { if (fs.existsSync(readme)) { const content = readFileSync(readme); const newContent = content.replace(/(url\s*:\s*)pages\/[\w-]+\/[\w/\-?=]+\n/, `$1${demoUrl}\n`); writeFileSync(readme, newContent); } } function getDemoUrl(compConfig) { const { name, demoRedirect, subPackage = DEMO_DIR_MAP.PRESS } = compConfig; const hyphenatedName = hyphenate(name); if (!demoRedirect) { return `pages/${subPackage}/${hyphenatedName}/${hyphenatedName}`; } const hyphenatedRedirect = hyphenate(demoRedirect); return `pages/${subPackage}/${hyphenatedRedirect}/${hyphenatedRedirect}?comp=${hyphenatedName}`; } module.exports = { updateDocsData, };