UNPKG

@ali-i18n-fe/dada-component

Version:
42 lines (29 loc) 1.06 kB
const path = require("path"); const fs = require("fs"); const { nodeRequire } = require("./wrapWindow"); /** * 创建RouteMap关系 * @returns {*} */ function buildRouteMap(webpackConfig) { const { path: output } = webpackConfig.output; const componentModule = nodeRequire(path.resolve(output, "index.js")); const componentArr = componentModule.displayName ? [componentModule] : Object.values(componentModule); const routeMap = componentArr.reduce((previousValue, currentValue) => { if (!currentValue.__docsPath) { return previousValue; } const localPath = currentValue.__docsPath.replace(/.+(docs\/.+)$/, "$1"); return Object.assign(previousValue, { [localPath]: currentValue.displayName }); }, {}); const writeFile = path.resolve(webpackConfig.output.path, "routeMap.json"); fs.writeFileSync(writeFile, JSON.stringify(routeMap), "utf8"); webpackConfig.routeMap = routeMap; console.log(`RouteMap生成成功: ${writeFile}`.green); return routeMap; } exports.buildRouteMap = buildRouteMap;