@ali-i18n-fe/dada-component
Version:
42 lines (29 loc) • 1.06 kB
JavaScript
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;