Files
jinshen-website/nuxt.config.ts
R2m1liA 7e7775ccc6 feat: 为Directus插件提供GraphQL支持
- 在Nuxt中引入GraphQL加载模块
- 为Directus引入GraphQl, Query
2025-11-11 15:52:27 +08:00

143 lines
3.6 KiB
TypeScript

// 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',
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',
'@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' },
],
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',
],
});