index.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /**********************************
  2. * @Author: Ronnie Zhang
  3. * @LastEditor: Ronnie Zhang
  4. * @LastEditTime: 2023/12/04 22:48:02
  5. * @Email: zclzone@outlook.com
  6. * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
  7. **********************************/
  8. import path from 'node:path'
  9. import { globSync } from 'glob'
  10. import dynamicIcons from '../src/assets/icons/dynamic-icons.js'
  11. /**
  12. * @usage 生成icons, 用于 unocss safelist,以支持页面动态渲染自定义图标
  13. */
  14. export function getIcons() {
  15. const feFiles = globSync('src/assets/icons/feather/*.svg', { nodir: true, strict: true })
  16. const meFiles = globSync('src/assets/icons/isme/*.svg', { nodir: true, strict: true })
  17. const feIcons = feFiles.map((filePath) => {
  18. const fileName = path.basename(filePath) // 获取文件名,包括后缀
  19. const fileNameWithoutExt = path.parse(fileName).name // 获取去除后缀的文件名
  20. return `i-fe:${fileNameWithoutExt}`
  21. })
  22. const meIcons = meFiles.map((filePath) => {
  23. const fileName = path.basename(filePath) // 获取文件名,包括后缀
  24. const fileNameWithoutExt = path.parse(fileName).name // 获取去除后缀的文件名
  25. return `i-me:${fileNameWithoutExt}`
  26. })
  27. return [...dynamicIcons, ...feIcons, ...meIcons]
  28. }
  29. /**
  30. * @usage 生成.vue文件路径列表,用于添加菜单时可下拉选择对应的.vue文件路径,防止手动输入报错
  31. */
  32. export function getPagePathes() {
  33. const files = globSync('src/views/**/*.vue')
  34. return files.map(item => `/${path.normalize(item).replace(/\\/g, '/')}`)
  35. }