// https://nuxt.com/docs/api/configuration/nuxt-config import GraphQLLoader from 'vite-plugin-graphql-loader'; export default defineNuxtConfig({ compatibilityDate: '2025-07-15', devtools: { enabled: true }, app: { // head head: { titleTemplate: '金申机械制造有限公司', meta: [ { name: 'viewport', content: 'width=device-width, initial-scale=1' }, { name: 'description', content: '浙江金申机械制造有限公司,专业生产一系列纸管、纸罐设备,是一家集设计、制造、销售、服务于一体的企业。公司主要 产品有原纸分切机、数控纸管机、纸管精切机及纸管后加工设备等 三十多个品种,产品在造纸、印刷、包装、纺织及文具等行业得到 广泛应用。公司依靠科技进步,引进高新技术,致力于新产品开发及技术改造,并配备完善的销售网络和售后服务体系,产品销往全国各地及全球上百个国家和地区,真正做到让客户买的放心,用的安心。', }, ], htmlAttrs: { lang: 'zh', }, link: [{ rel: 'icon', type: 'image/x-icon', href: '/jinshen-logo.ico' }], }, }, components: [ { path: '~/components', pathPrefix: false, }, ], runtimeConfig: { public: { meili: { host: process.env.MEILI_HOST || 'http://localhost:7700', searchKey: process.env.MEILI_SEARCH_KEY || '', indexes: process.env.MEILI_SEARCH_INDEXES ? typeof process.env.MEILI_SEARCH_INDEXES === 'string' ? process.env.MEILI_SEARCH_INDEXES.split(',').map((i) => i.trim()) : process.env.MEILI_SEARCH_INDEXES : ['products', 'solutions', 'questions', 'product_documents'], }, directus: { url: process.env.DIRECTUS_URL || 'http://localhost:8055', publicUrl: process.env.DIRECTUS_PUBLIC_URL || process.env.DIRECTUS_URL || 'http://localhost:8055', token: process.env.DIRECTUS_TOKEN || undefined, }, }, }, fonts: { provider: 'local', }, typescript: { tsConfig: { compilerOptions: { noUnusedLocals: false, noUnusedParameters: false, strict: false, }, }, }, // css css: [ '@unocss/reset/tailwind.css', '~/assets/scss/index.scss', '~/assets/css/fonts.css', '~/assets/css/typography.css', '@mdi/font/css/materialdesignicons.min.css', ], nitro: { esbuild: { options: { target: 'esnext', }, }, // prerender: { // crawlLinks: false, // routes: ['/'], // ignore: ['/hi'], // }, }, vite: { css: { preprocessorOptions: { scss: { additionalData: `@use "@/assets/scss/element/index.scss" as element;`, }, }, }, plugins: [GraphQLLoader()], }, devServer: { port: 3000, host: '0.0.0.0', }, elementPlus: { icon: 'ElIcon', importStyle: 'scss', themes: ['dark'], }, i18n: { baseUrl: process.env.BASE_URL || 'http://localhost:3000', detectBrowserLanguage: { useCookie: true, cookieKey: 'i18n_redirected', redirectOn: 'root', alwaysRedirect: true, }, locales: [ { code: 'en', language: 'en-US', name: 'English', file: 'en.json' }, { code: 'zh', language: 'zh-CN', name: '简体中文', file: 'zh.json' }, { code: 'es', language: 'es-ES', name: 'Español', file: 'es.json' }, { code: 'ru', language: 'ru-RU', name: 'Русский', file: 'ru.json' }, ], defaultLocale: 'zh', strategy: 'prefix_except_default', langDir: 'locales', }, imports: { dirs: ['types/**', 'models/**'], }, modules: [ '@nuxt/eslint', '@nuxt/fonts', '@nuxt/icon', '@nuxt/image', '@vueuse/nuxt', '@pinia/nuxt', '@unocss/nuxt', '@element-plus/nuxt', '@nuxtjs/i18n', '@nuxt/test-utils/module', ], });