版博士V2.0程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.mjs 1.0 KiB

12345678910111213
  1. import{posix as d}from"path";import{getPackageInfo as g}from"local-pkg";function s(t){return t=t.startsWith("/")?t:"/"+t,d.normalize(t)}async function l(){let t=await g("vite");return t?/.?2/.test(t.version):!1}function m(t){return`'${t}/*.[tj]s'`}async function v(t){return await l()?`import.meta.globEager(${t})`:`import.meta.glob(${t}, { eager: true })`}async function f(t){return`
  2. export const modules = ${await v(t)}
  3. export const useModules = app => {
  4. Object.values(modules).forEach(module => {
  5. if (typeof module.default === 'function') {
  6. module.default(app)
  7. }
  8. })
  9. return app
  10. }`}function x(t,e){return/src\/main\.(js|ts)$/.test(e)?t.replace(/^/,`import { useModules } from 'virtual:modules'
  11. `).replace(/(createApp\(.*?\))/,"useModules($1)"):t}function I(t){let{auto:e=!1,target:r="src/modules",normalize:p=m}=t||{},n="virtual:modules",i="\0"+n;return r=s(r),{name:"vite-plugin-use-modules",resolveId(o){if(o===n)return i},load(o){if(o===i){let c=p(r);return f(c)}},transform:e?x:void 0}}export{I as default};