@lee1586/vite-plugin-auto-routes
Version:
A Vite plugin to auto-generate route configurations based on directory structure.
3 lines (2 loc) • 1.47 kB
JavaScript
;var e,r,t=require("fs"),n=require("path");function o(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var i=o(function(){if(r)return e;r=1;const o=t,i=n;function s(e,r){return o.readdirSync(e).flatMap(t=>{const n=i.resolve(e,t),u=i.relative(r,n);if(o.statSync(n).isDirectory())return s(n,r);if(t.endsWith(".vue")){const e=u.replace(/\\/g,"/").replace(/\.vue$/,"").replace(/\/index$/,"").replace(/\/_/g,"/:").split("/").filter(Boolean);e.length>1&&e[e.length-1]===e[e.length-2]&&e.pop();const r="/"+e.join("/").toLowerCase(),t=n.replace(".vue",".meta.js"),i=o.existsSync(t)?function(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}(t):{};return[`{\n path: "${r}",\n component: () => import("${n.replace(/^.*?(\/src\/views\/.*\.vue)$/,"$1")}")${Object.keys(i).length?",":""}\n ${Object.entries(i).map(([e,r])=>`${e}: ${JSON.stringify(r)}`).join(",\n")}\n }`]}return[]})}return e=function(e={}){const{pagesDir:r="src/views",routesFile:t="src/router/autoRoutes.js"}=e;return{name:"vite-plugin-auto-routes",configResolved(e){const n=i.resolve(e.root,r),u=`\n export const routes = [\n ${s(n,n).join(",\n")}\n ];\n `;o.writeFileSync(i.resolve(e.root,t),u)}}}}());module.exports=i;
//# sourceMappingURL=index.cjs.js.map