nuxt.config.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. // https://nuxt.com/docs/api/configuration/nuxt-config
  2. /*
  3. * @Author: wjc
  4. * @Date: 2023-10-25 19:39:32
  5. * @LastEditors: LiZhiWei
  6. * @LastEditTime: 2026-01-23 10:00:14
  7. * @Description:
  8. */
  9. import { loadEnv } from 'vite'
  10. import { createResolver } from '@nuxt/kit'
  11. const { resolve } = createResolver(import.meta.url)
  12. import { fileURLToPath } from 'url'
  13. import { appDescription } from './app/constants/index'
  14. const envName = process.env.npm_lifecycle_script?.match(/--mode\s(.*)/)?.[1] ?? 'development'
  15. const envData = loadEnv(envName, process.cwd()) // 获取.env文件中的配置
  16. Object.assign(process.env, envData) // 将环境配置信息,添加到process.env
  17. export default defineNuxtConfig({
  18. compatibilityDate: '2026-01-09',
  19. routeRules: {},
  20. alias: {
  21. '@': fileURLToPath(new URL('./app', import.meta.url)),
  22. },
  23. modules: [
  24. '@vueuse/nuxt',
  25. '@unocss/nuxt',
  26. '@pinia/nuxt',
  27. '@element-plus/nuxt',
  28. '@nuxtjs/sitemap',
  29. // '@nuxtjs/color-mode',
  30. // '@nuxtjs/i18n',
  31. ],
  32. site: {
  33. url: 'https://www.huijia.com',
  34. name: '绘家科技',
  35. },
  36. sitemap: {
  37. // 自动扫描路由
  38. },
  39. experimental: {
  40. // when using generate, payload js assets included in sw precache manifest
  41. // but missing on offline, disabling extraction it until fixed
  42. payloadExtraction: false,
  43. renderJsonPayloads: false,
  44. typedPages: false,
  45. },
  46. imports: {
  47. dirs: [
  48. resolve('./app/stores'),
  49. resolve('./app/composables'),
  50. resolve('./app/components'),
  51. resolve('./app/components/section'),
  52. ],
  53. },
  54. css: ['@unocss/reset/tailwind.css', '~/assets/scss/common.scss'],
  55. vite: {
  56. css: {
  57. preprocessorOptions: {
  58. scss: {
  59. additionalData: `@use "~/assets/scss/vars.scss";`,
  60. },
  61. },
  62. },
  63. },
  64. nitro: {
  65. devProxy: {
  66. '/yyds': {
  67. target: 'https://wisdomcity.eu.org:30032/yyds',
  68. changeOrigin: true,
  69. prependPath: true,
  70. secure: false,
  71. },
  72. },
  73. },
  74. build: {},
  75. runtimeConfig: {
  76. public: {
  77. apiBase: process.env.NUXT_PUBLIC_API_BASE,
  78. },
  79. },
  80. app: {
  81. head: {
  82. viewport: 'width=device-width, initial-scale=1.0, maximum-scale=1.0',
  83. link: [
  84. { rel: 'icon', href: '/logo.png', sizes: 'any' },
  85. { rel: 'icon', href: '/logo.png' },
  86. { rel: 'apple-touch-icon', href: '/logo.png' },
  87. {
  88. rel: 'preload',
  89. href: '/fonts/D-DIN-PRO-600-SemiBold.woff2',
  90. as: 'font',
  91. type: 'font/woff2',
  92. crossorigin: 'anonymous',
  93. },
  94. ],
  95. meta: [
  96. { name: 'viewport', content: 'width=device-width, initial-scale=1' },
  97. { name: 'description', content: appDescription },
  98. { name: 'apple-mobile-web-app-status-bar-style', content: 'black-translucent' },
  99. ],
  100. },
  101. },
  102. features: {
  103. inlineStyles: false,
  104. },
  105. components: true,
  106. sourcemap: {
  107. client: true,
  108. server: false,
  109. },
  110. })