{"_id":"@wemt/vue-auto-router","_rev":"43-66b4153ec1a754450f69568539954e36","name":"@wemt/vue-auto-router","dist-tags":{"latest":"1.1.4"},"versions":{"1.1.0":{"name":"@wemt/vue-auto-router","version":"1.1.0","keywords":["vite","plugin","vue","router","auto-router"],"author":{"name":"Mutaoinc & Wemt Team"},"license":"MIT","_id":"@wemt/vue-auto-router@1.1.0","maintainers":[{"name":"mutaoinc","email":"info@mutaoinc.com"}],"homepage":"https://github.com/mutaoinc/wemt-vue-auto-router#readme","bugs":{"url":"https://github.com/mutaoinc/wemt-vue-auto-router/issues"},"dist":{"shasum":"a9ca9d1a63b283831c87a9283b1001aebb89c722","tarball":"https://registry.npmjs.org/@wemt/vue-auto-router/-/vue-auto-router-1.1.0.tgz","fileCount":4,"integrity":"sha512-KP+bHzBs3Z4qnX8oszscVCl9eeveAWqRgeQuEtjT8qV3HM8iAewxWz1riZpkOtB4KnYepdHZ3AwW/wYr5cLK3A==","signatures":[{"sig":"MEUCIGjp3y8AtgMUIZeTQ05qNyJfxYhPscrWNXpTNzKgiI1JAiEA0sFLEefYJOxHvCH0CuZq7l0WHBBRfeq2DiMqFtqerwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22956},"main":"./dist/index.mjs","type":"module","_from":"file:wemt-vue-auto-router-1.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"rollup -c --watch","test":"vitest","build":"rollup -c","test:watch":"vitest --watch","publish:init":"npm-publish-easier --init","publish:clean":"npm-publish-easier --clean","test:coverage":"vitest --coverage","publish:prepare":"npm-publish-easier"},"_npmUser":{"name":"mutaoinc","email":"info@mutaoinc.com"},"_resolved":"C:\\Users\\info\\AppData\\Local\\Temp\\7811fbe6c378b7b16c8a3c8fa1bca35c\\wemt-vue-auto-router-1.1.0.tgz","_integrity":"sha512-KP+bHzBs3Z4qnX8oszscVCl9eeveAWqRgeQuEtjT8qV3HM8iAewxWz1riZpkOtB4KnYepdHZ3AwW/wYr5cLK3A==","repository":{"url":"git+https://github.com/mutaoinc/wemt-vue-auto-router.git","type":"git"},"_npmVersion":"10.9.2","description":"一个专为 Vue + Vite 项目设计的自动路由生成插件，能够根据文件目录结构自动生成 Vue Router 配置。","directories":{},"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.0","tslib":"^2.0.0","rollup":"^4.0.0","vitest":"^1.6.1","vue-tsc":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","rollup-plugin-dts":"^6.0.0","@vitest/coverage-v8":"^1.6.1","@rollup/plugin-commonjs":"^25.0.0","@wemt/npm-publish-easier":"^1.1.7","@rollup/plugin-typescript":"^11.0.0","@rollup/plugin-node-resolve":"^15.0.0"},"peerDependencies":{"vue":"^3.0.0","glob":"^10.0.0","vite":"^7.0.0","vue-router":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-auto-router_1.1.0_1770665777896_0.08588242399069834","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@wemt/vue-auto-router","version":"1.1.1","keywords":["vite","plugin","vue","router","auto-router"],"author":{"name":"Mutaoinc & Wemt Team"},"license":"MIT","_id":"@wemt/vue-auto-router@1.1.1","maintainers":[{"name":"mutaoinc","email":"info@mutaoinc.com"}],"homepage":"https://github.com/mutaoinc/wemt-vue-auto-router#readme","bugs":{"url":"https://github.com/mutaoinc/wemt-vue-auto-router/issues"},"dist":{"shasum":"182921709df69de1fe01e09436616469be873e8f","tarball":"https://registry.npmjs.org/@wemt/vue-auto-router/-/vue-auto-router-1.1.1.tgz","fileCount":3,"integrity":"sha512-oYA6Qm+XZCeSTxi2lKvjbODifVs7aJycOhG0SmHJML6nXlU2Vmsv5VsRDxZnKgW4m+bdERG+hTJ+okAbNklQeQ==","signatures":[{"sig":"MEUCIQC4akgSACvwgana/wxU2zzMAFLYixGSnYFcXDPmy0epcgIgZ9sQVfFBa6VPYeXWplg/FU8DqhvNvhaQeqZrX7Es9AY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12044},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"f73cf0c9253e693c3b6ea2931e84310ee2f564f2","scripts":{"test":"vitest","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"mutaoinc","email":"info@mutaoinc.com"},"repository":{"url":"git+https://github.com/mutaoinc/wemt-vue-auto-router.git","type":"git"},"_npmVersion":"10.9.2","description":"一个专为 Vue + Vite 项目设计的自动路由生成插件，能够根据文件目录结构自动生成 Vue Router 配置。","directories":{},"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.6.1","@vitest/coverage-v8":"^1.6.1"},"peerDependencies":{"vue":"^3.0.0","glob":"^10.0.0","vite":"^7.0.0","vue-router":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-auto-router_1.1.1_1770673053545_0.7893199986812813","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@wemt/vue-auto-router","version":"1.1.2","keywords":["vite","plugin","vue","router","auto-router"],"author":{"name":"Mutaoinc & Wemt Team"},"license":"MIT","_id":"@wemt/vue-auto-router@1.1.2","maintainers":[{"name":"mutaoinc","email":"info@mutaoinc.com"}],"homepage":"https://github.com/mutaoinc/wemt-vue-auto-router#readme","bugs":{"url":"https://github.com/mutaoinc/wemt-vue-auto-router/issues"},"dist":{"shasum":"e2ba407a9d1d1fa506ace588adb6ed5de8b98d19","tarball":"https://registry.npmjs.org/@wemt/vue-auto-router/-/vue-auto-router-1.1.2.tgz","fileCount":8,"integrity":"sha512-oeHmT45kNdvwhShNK9fTEKjrKsCGgtWV770wo6n8v32ZmGypuEdXdT6D6DUKvx4c14RuOvkIpGTEE4n4yWeSkg==","signatures":[{"sig":"MEUCIQDwS97Homimr/S3V2GiyUYaH4KFbJrgaCF4JQgWjwcULAIgfSb7UU5/fyB6sQqp1kRzTGbJpu8er+PHULSaIOyBap4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112873},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"f73cf0c9253e693c3b6ea2931e84310ee2f564f2","scripts":{"test":"vitest","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"mutaoinc","email":"info@mutaoinc.com"},"repository":{"url":"git+https://github.com/mutaoinc/wemt-vue-auto-router.git","type":"git"},"_npmVersion":"10.9.2","description":"一个专为 Vue + Vite 项目设计的自动路由生成插件，能够根据文件目录结构自动生成 Vue Router 配置。","directories":{},"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.6.1","@vitest/coverage-v8":"^1.6.1"},"peerDependencies":{"vue":"^3.0.0","glob":"^10.0.0","vite":"^7.0.0","vue-router":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-auto-router_1.1.2_1770673192182_0.7710380105386376","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@wemt/vue-auto-router","version":"1.1.4","type":"module","description":"一个专为 Vue + Vite 项目设计的自动路由生成插件，能够根据文件目录结构自动生成 Vue Router 配置。","main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs","types":"./dist/index.d.ts"}},"scripts":{"test":"vitest","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"keywords":["vite","plugin","vue","router","auto-router"],"author":{"name":"Mutaoinc & Wemt Team"},"license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/mutaoinc/wemt-vue-auto-router.git"},"bugs":{"url":"https://github.com/mutaoinc/wemt-vue-auto-router/issues"},"homepage":"https://github.com/mutaoinc/wemt-vue-auto-router#readme","peerDependencies":{"glob":"^10.0.0","vite":"^7.0.0","vue":"^3.0.0","vue-router":"^4.0.0"},"devDependencies":{"@vitest/coverage-v8":"^1.6.1","vitest":"^1.6.1"},"_id":"@wemt/vue-auto-router@1.1.4","gitHead":"f73cf0c9253e693c3b6ea2931e84310ee2f564f2","_nodeVersion":"22.13.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-/1K1GiFQFx829rONahnk8T1jI3JnPbPdK+YXRouVRb9Xe0M9Sb8zjVzBSUi5wnhbOoIJ8dXZa42B2myln6XiaQ==","shasum":"930d43050a4c0b4dd16a9dad661a5e1db71ba79e","tarball":"https://registry.npmjs.org/@wemt/vue-auto-router/-/vue-auto-router-1.1.4.tgz","fileCount":8,"unpackedSize":112757,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD7adJUCL97N+PUhTgmZfuru8uvlOEEFTF1h/Y5i6Kr4wIhAKxN0Z43XOQKcbVTPW0oywsJy9En17YaBYsRecoX1tMp"}]},"_npmUser":{"name":"mutaoinc","email":"info@mutaoinc.com"},"directories":{},"maintainers":[{"name":"mutaoinc","email":"info@mutaoinc.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue-auto-router_1.1.4_1770673744831_0.27844180785440376"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-09T19:36:17.739Z","modified":"2026-02-09T21:49:05.117Z","1.0.0":"2025-07-14T18:57:39.467Z","1.0.1":"2025-07-14T18:58:57.244Z","1.0.2":"2025-07-14T19:00:34.969Z","1.0.3":"2025-07-14T19:09:48.845Z","1.0.4":"2025-07-14T19:15:35.064Z","1.0.5":"2025-07-14T19:25:54.180Z","1.0.6":"2025-07-14T19:27:19.623Z","1.0.7":"2025-07-14T19:27:53.693Z","1.0.8":"2025-07-14T19:29:01.741Z","1.0.9":"2025-07-14T19:30:34.904Z","1.0.10":"2025-07-14T19:35:27.462Z","1.0.11":"2025-07-14T19:37:54.454Z","1.0.12":"2025-07-14T19:46:32.753Z","1.0.13":"2025-07-14T20:39:10.156Z","1.0.14":"2025-07-14T20:41:20.474Z","1.0.15":"2025-07-14T20:42:45.532Z","1.0.16":"2025-07-14T20:43:20.255Z","1.0.18":"2025-07-14T20:44:09.423Z","1.0.19":"2025-07-14T20:45:04.010Z","1.1.0":"2026-02-09T19:36:18.057Z","1.1.1":"2026-02-09T21:37:33.677Z","1.1.2":"2026-02-09T21:39:52.340Z","1.1.4":"2026-02-09T21:49:04.975Z"},"bugs":{"url":"https://github.com/mutaoinc/wemt-vue-auto-router/issues"},"author":{"name":"Mutaoinc & Wemt Team"},"license":"MIT","homepage":"https://github.com/mutaoinc/wemt-vue-auto-router#readme","keywords":["vite","plugin","vue","router","auto-router"],"repository":{"type":"git","url":"git+https://github.com/mutaoinc/wemt-vue-auto-router.git"},"description":"一个专为 Vue + Vite 项目设计的自动路由生成插件，能够根据文件目录结构自动生成 Vue Router 配置。","maintainers":[{"name":"mutaoinc","email":"info@mutaoinc.com"}],"readme":"# @wemt/vue-auto-router\n\n**简体中文** | [English](./README_en.md)\n\n一个专为 Vue + Vite 项目设计的自动路由生成插件，能够根据文件目录结构自动生成 Vue Router 配置。\n\n## ✨ 功能特性\n\n- 🚀 **智能路由生成**: 基于文件目录结构自动生成 Vue Router 配置，告别手动维护路由\n- 👁️ **实时文件监听**: 开发模式下智能监听文件变化，自动重新生成路由配置\n- ⚙️ **高度可定制**: 提供丰富的配置选项，完全满足不同项目的个性化需求\n- 🛡️ **路由守卫集成**: 自动生成基础路由守卫，支持权限控制和页面标题设置\n- 📝 **元信息支持**: 支持在 Vue 组件中使用 `defineOptions` 定义路由元信息\n- ⚡ **性能优化**: 默认启用组件懒加载，显著提升应用加载性能\n- 🪶 **轻量级设计**: 最小化依赖，极小的包体积，不影响项目构建速度\n- 🔧 **TypeScript 支持**: 完整的 TypeScript 类型定义，提供良好的开发体验\n\n## 📦 安装\n\n```bash\nnpm install @wemt/vue-auto-router -D\n# 或\nyarn add @wemt/vue-auto-router -D\n# 或\npnpm add @wemt/vue-auto-router -D\n```\n\n## 🚀 快速开始\n\n### 1. 配置 Vite 插件\n\n在 `vite.config.ts` 中配置插件：\n\n```typescript\nimport { defineConfig } from \"vite\";\nimport vue from \"@vitejs/plugin-vue\";\nimport ar from \"@wemt/vue-auto-router\";\n\nexport default defineConfig({\n  plugins: [\n    vue(),\n    ar({\n      // 可选配置\n      scanDir: \"src/views\",\n      defaultTitle: \"我的应用\",\n    }),\n  ],\n});\n```\n\n### 2. 配置路由\n\n在 `src/router/index.ts` 中配置自动路由：\n\n```typescript\nimport { createRouter, createWebHistory } from \"vue-router\";\nimport autoRoutes from \"./auto/routes\"; // 自动生成的路由配置\nimport { setupRouteGuards } from \"./guards\"; // 自动生成的路由守卫\n\nconst router = createRouter({\n  history: createWebHistory(),\n  routes: [\n    // 你的自定义路由\n    {\n      path: \"/custom\",\n      name: \"custom\",\n      component: () => import(\"@/views/Custom.vue\"),\n    },\n    // 自动生成的路由\n    ...autoRoutes,\n  ],\n});\n\n// 设置路由守卫\nsetupRouteGuards(router);\n\nexport default router;\n```\n\n### 3. 创建页面文件\n\n在 `src/views` 目录下创建你的页面文件：\n\n```\nsrc/views/\n├── home.vue          # 首页路由: /\n├── About.vue         # 路由: /about\n├── user/\n│   ├── index.vue     # 用户首页路由: /user\n│   ├── Profile.vue   # 路由: /user/profile\n│   └── Settings.vue  # 路由: /user/settings\n└── 404.vue          # 404 页面\n```\n\n### 4. 在 Vue 组件中定义路由元信息\n\n```vue\n<template>\n  <div class=\"user-profile\">\n    <h1>用户资料</h1>\n    <!-- 页面内容 -->\n  </div>\n</template>\n\n<script setup lang=\"ts\">\n// 定义路由元信息\ndefineOptions({\n  meta: {\n    title: \"用户资料\",\n    params: {\n      requiresAuth: true,\n      keepAlive: true,\n    },\n  },\n});\n\n// 组件逻辑\nconst userInfo = ref({});\n</script>\n```\n\n## 📁 推荐的项目结构\n\n```\nsrc/\n├── views/                    # 页面组件目录\n│   ├── home.vue             # 首页（路由：/）\n│   ├── About.vue            # 关于页面\n│   ├── user/                # 用户相关页面\n│   │   ├── index.vue        # 用户首页（路由：/user）\n│   │   ├── Profile.vue      # 用户资料\n│   │   └── Settings.vue     # 用户设置\n│   └── 404.vue             # 404 页面\n├── router/                  # 路由配置目录\n│   ├── index.ts            # 主路由文件\n│   ├── guards.ts           # 路由守卫（自动生成）\n│   └── auto/               # 自动生成的路由文件\n│       ├── routes.ts       # 路由配置\n│       └── config.ts       # 配置信息\n└── components/             # 公共组件（不会被扫描为路由）\n```\n\n## ⚙️ 详细配置\n\n### 基础配置\n\n```typescript\n{\n  // 扫描目录，默认为 \"src/views\"\n  scanDir: \"src/views\",\n\n  // 支持的文件扩展名，默认为 [\".vue\"]\n  extensions: [\".vue\", \".ts\", \".js\"],\n\n  // 排除的文件模式\n  exclude: [\"**/components/**\", \"**/__tests__/**\", \"**/.*\"],\n\n  // 路由路径前缀\n  pathPrefix: \"\",\n\n  // 是否启用懒加载，默认为 true\n  lazy: true,\n\n  // 默认页面标题\n  defaultTitle: \"我的应用\",\n\n  // 全局路由元信息\n  meta: {\n    params: {\n      requiresAuth: false,\n      keepAlive: false,\n    },\n  },\n});\n```\n\n### 命名规则配置\n\n```typescript\n{\n  naming: {\n    // 是否使用 kebab-case 命名，默认为 false\n    kebabCase: true,\n\n    // 是否保留文件路径作为路由名，默认为 false\n    preservePath: false,\n\n    // 文件名后缀，会在生成路由名时移除\n    filenameSuffixes: [\"View\", \"Page\"],\n  },\n};\n```\n\n### 首页路由配置\n\n插件会自动识别首页文件并绑定到相应路径。根目录下的首页文件绑定到根路径 `/`，子目录下的首页文件绑定到对应的子目录路径。支持根目录和子目录的统一配置。\n\n```typescript\n{\n  homeRoute: {\n    path: \"/\", // 首页路径，默认为 \"/\"\n    name: \"home\", // 首页名称，默认为 \"home\"\n    fileNames: [\"home\", \"Home\", \"index\", \"Index\"], // 首页文件名列表，默认值\n  },\n});\n```\n\n#### 默认首页文件识别规则\n\n插件默认会将以下文件识别为首页：\n\n```\nsrc/views/\n├── home.vue     ✅ 根目录首页 → 路由: { path: \"/\", name: \"home\" }\n├── Home.vue     ✅ 根目录首页 → 路由: { path: \"/\", name: \"home\" }  \n├── index.vue    ✅ 根目录首页 → 路由: { path: \"/\", name: \"home\" }\n├── Index.vue    ✅ 根目录首页 → 路由: { path: \"/\", name: \"home\" }\n├── user/\n│   ├── home.vue  ✅ 子目录首页 → 路由: { path: \"/user\", name: \"user\" }\n│   ├── Home.vue  ✅ 子目录首页 → 路由: { path: \"/user\", name: \"user\" }\n│   ├── index.vue ✅ 子目录首页 → 路由: { path: \"/user\", name: \"user\" }\n│   └── Index.vue ✅ 子目录首页 → 路由: { path: \"/user\", name: \"user\" }\n└── admin/\n    └── index.vue ✅ 子目录首页 → 路由: { path: \"/admin\", name: \"admin\" }\n```\n\n#### 自定义首页文件名\n\n你可以通过配置来自定义哪些文件名应该被识别为首页：\n\n```typescript\n{\n  homeRoute: {\n    path: \"/\",\n    name: \"home\",\n    fileNames: [\"main\", \"landing\"] // 自定义首页文件名\n  }\n}\n```\n\n配置后的效果：\n```\nsrc/views/\n├── main.vue         ✅ 根目录首页 → 路由: { path: \"/\", name: \"home\" }\n├── landing.vue      ✅ 根目录首页 → 路由: { path: \"/\", name: \"home\" }\n├── home.vue         ❌ 不识别（不在配置列表中）\n└── user/\n    ├── main.vue     ✅ 子目录首页 → 路由: { path: \"/user\", name: \"user\" }\n    └── landing.vue  ✅ 子目录首页 → 路由: { path: \"/user\", name: \"user\" }\n```\n\n**注意事项：**\n- 文件名匹配严格按照配置进行，不进行大小写转换（默认支持大小写变体）\n- 根目录和子目录使用统一的识别规则\n- 子目录中的首页文件会绑定到对应的子目录路径（如 `/user`）\n- 如果配置了自定义文件名，则只识别配置中的文件名\n\n### 404 页面配置\n\n```typescript\n{\n  notFound: {\n    enabled: true, // 是否启用 404 页面，默认为 true\n    path: \"/:pathMatch(.*)*\", // 404 页面路径\n    name: \"not-found\", // 404 页面名称\n    component: \"src/views/404.vue\", // 404 页面组件路径\n  },\n}\n```\n\n### 输出文件配置\n\n```typescript\n{\n  output: {\n    routes: \"src/router/auto/routes.ts\", // 路由文件输出路径\n    config: \"src/router/auto/config.ts\", // 配置文件输出路径\n    guards: \"src/router/guards.ts\", // 守卫文件输出路径\n  },\n}\n```\n\n## 🛡️ 路由守卫\n\n插件会自动生成基础的路由守卫文件，你可以在此基础上进行自定义：\n\n```typescript\nimport type { Router } from \"vue-router\";\n\n// 模拟登录状态检查函数\nfunction isAuthenticated(): boolean {\n  return localStorage.getItem(\"token\") !== null;\n}\n\nexport function setupRouteGuards(router: Router) {\n  router.beforeEach((to, from, next) => {\n    // 设置页面标题\n    const title = to.meta?.title as string;\n    if (title) {\n      document.title = title;\n    }\n\n    // 检查是否需要登录\n    if (to.meta?.params?.requiresAuth) {\n      if (!isAuthenticated()) {\n        next(\"/login\");\n        return;\n      }\n    }\n\n    // 检查权限\n    if (to.meta?.params?.permissions) {\n      const userPermissions = getUserPermissions();\n      const requiredPermissions = to.meta.params.permissions as string[];\n\n      if (!hasPermissions(userPermissions, requiredPermissions)) {\n        next(\"/403\");\n        return;\n      }\n    }\n\n    next();\n  });\n\n  router.afterEach((to, from) => {\n    // 路由切换完成后的处理\n    console.log(`Route changed from ${from.path} to ${to.path}`);\n\n    // 页面分析、埋点等\n    if (to.meta?.title) {\n      console.log(`Page title set to: ${to.meta.title}`);\n    }\n  });\n}\n```\n\n## 🔧 高级用法\n\n### 动态路由\n开发中\n\n### 过渡动画\n开发中\n\n### 路由缓存\n开发中\n\n\n## 🤝 贡献\n\n欢迎提交 Issue 和 Pull Request！\n\n## 📄 许可证\n\n[MIT](https://opensource.org/licenses/MIT)\n\n## 👨‍💻 作者\n\n**Mutaoinc & Wemt Team**\n\n---\n\n如果这个工具对你有帮助，请给个 ⭐ Star 支持一下！\n","readmeFilename":"README.md"}