版博士V2.0程序
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. # vite-plugin-use-modules
  2. 自动加载 `modules`
  3. <br />
  4. <br />
  5. ## Usage 🦕
  6. ### install
  7. 1. 安装包
  8. ```shell
  9. npm i vite-plugin-use-modules -D
  10. ```
  11. 2. 注册插件
  12. ```ts
  13. // vite.config.js or vite.config.ts
  14. import { defineConfig } from 'vite'
  15. import Modules from 'vite-plugin-use-modules'
  16. export default defineConfig({
  17. plugins: [Modules()]
  18. })
  19. ```
  20. <br />
  21. ### basic
  22. 1. 获取所有模块
  23. ```ts
  24. import { modules } from 'virtual:modules'
  25. console.log(modules) // src/modules 的所有模块都会被获取到
  26. ```
  27. <br />
  28. 2. 使用 `src/modules` 下的默认导出函数
  29. ```ts
  30. // eg: src/modules/router.ts
  31. import { createRouter, createWebHistory } from 'vue-router'
  32. const router = createRouter({
  33. routes: [],
  34. history: createWebHistory()
  35. })
  36. export default (app: App) => app.use(router)
  37. ```
  38. ```ts
  39. import App from './App.vue'
  40. import { createApp } from 'vue'
  41. import { useModules } from 'virtual:modules'
  42. const app = createApp(App)
  43. useModules(app) // 这将注册所有的 Vue 插件
  44. app.mount('#app')
  45. ```
  46. <br />
  47. ### types 🦖
  48. 如果你是 `ts` 项目,可以在 `tsconfig.json` 中添加如下配置
  49. ```json
  50. {
  51. "compilerOptions": {
  52. "types": ["vite-plugin-use-modules/client"]
  53. }
  54. }
  55. ```
  56. <br />
  57. ### 配置
  58. 1. 修改目标目录
  59. ```ts
  60. import { defineConfig } from 'vite'
  61. import Modules from 'vite-plugin-use-modules'
  62. export default defineConfig({
  63. plugins: [
  64. Modules({
  65. target: 'src/plugins' // 这将加载 src/plugins 下的模块,默认为 src/modules
  66. })
  67. ]
  68. })
  69. ```
  70. 2. 自动模式
  71. ```ts
  72. import { defineConfig } from 'vite'
  73. import Modules from 'vite-plugin-use-modules'
  74. export default defineConfig({
  75. plugins: [
  76. Modules({
  77. auto: true // 开启自动模式
  78. })
  79. ]
  80. })
  81. ```
  82. 开启后,虚拟模块的注册是非必需的
  83. ```diff
  84. import App from './App.vue'
  85. import { createApp } from 'vue'
  86. - import { useModules } from 'virtual:modules'
  87. const app = createApp(App)
  88. - useModules(app)
  89. app.mount('#app')
  90. ```
  91. 3. 规范化
  92. ```ts
  93. import { defineConfig } from 'vite'
  94. import Modules from 'vite-plugin-use-modules'
  95. export default defineConfig({
  96. plugins: [
  97. Modules({
  98. normalize(target) {
  99. return `'${target}/*.[tj]s'` // 返回扫描的 glob
  100. }
  101. })
  102. ]
  103. })
  104. ```
  105. <br />
  106. <br />
  107. ## 组织 🦔
  108. 欢迎关注 **帝莎编程**
  109. - [官网](http://dishaxy.dishait.cn/)
  110. - [Gitee](https://gitee.com/dishait)
  111. - [Github](https://github.com/dishait)
  112. - [网易云课堂](https://study.163.com/provider/480000001892585/index.htm?share=2&shareId=480000001892585)
  113. <br />
  114. <br />
  115. ## License
  116. Made with markthree
  117. Published under [MIT License](./LICENSE).
  118. <br />