Files
consumocuidado/nuxt.config.ts

88 lines
2.3 KiB
TypeScript

// https://nuxt.com/docs/api/configuration/nuxt-config
import vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'
import { $fetch } from 'ofetch'
export default defineNuxtConfig({
compatibilityDate: '2025-07-15',
components: true,
ssr: true,
devtools: { enabled: true },
modules: [
'@nuxt/eslint',
'@bootstrap-vue-next/nuxt',
'@pinia/nuxt',
'pinia-plugin-persistedstate/nuxt',
'@nuxtjs/sitemap',
(_options, nuxt) => {
nuxt.hooks.hook('vite:extendConfig', (config) => {
// @ts-expect-error
config.plugins.push(vuetify({ autoImport: true }))
})
}
],
css: [
'~/assets/scss/main.scss',
'bootstrap/dist/css/bootstrap.min.css',
],
vite: {
css: {
preprocessorOptions: {
scss: {
additionalData: '@use "~/assets/scss/core/variables.scss" as *; @use "~/assets/scss/core/mixins.scss" as *;'
}
}
},
vue: {
template: {
transformAssetUrls,
},
},
},
plugins: [
'~/plugins/google-analytics.client.ts',
],
sitemap: {
exclude: ['/admin', '/admin/**', '/editar', '/editar/**'],
urls: async () => {
const baseURL = process.env.NUXT_PUBLIC_BASE_URL || 'https://miapi.com'
const routes: string[] = []
try {
const products = await $fetch(`${baseURL}products/`)
routes.push(...products.map((p: any) => `/productos/${p.id}`))
} catch (error) {
console.error('Error fetching products for sitemap:', error)
}
try {
const companies = await $fetch(`${baseURL}companies/`)
routes.push(...companies.map((c: any) => `/c/${c.id}`))
} catch (error) {
console.error('Error fetching companies for sitemap:', error)
}
routes.push('/busqueda?order=newest')
return routes
}
},
runtimeConfig: {
baseURL: process.env.NUXT_PUBLIC_BASE_URL,
public: {
baseURL: process.env.NUXT_PUBLIC_BASE_URL,
googleAnalyticsId: process.env.NUXT_PUBLIC_GOOGLE_ANALYTICS_ID,
googleMapsApiKey: process.env.NUXT_PUBLIC_GOOGLE_MAPS_API_KEY,
googleClientId: process.env.NUXT_PUBLIC_GOOGLE_CLIENT_ID,
facebookId: process.env.NUXT_PUBLIC_FACEBOOK_ID,
},
private: {
apiBase: process.env.NUXT_PUBLIC_BASE_URL,
},
},
build: {
transpile: ['vuetify'],
},
})