import fs from 'fs'; import type { I18nOptions } from 'vue-i18n' // https://v3.nuxtjs.org/api/configuration/nuxt.config export default defineNuxtConfig({ vuetify: { customVariables: ['~/assets/css/variables.scss'], treeShake: true, }, css: [ '@/assets/css/global.css', '@/assets/css/import.css', 'vuetify/lib/styles/main.sass' ], runtimeConfig: { // Private config that is only available on the server baseUrl: '', baseUrlLegacy: '', baseUrlAdminLegacy: '', baseUrlTypo3: '', baseUrlMercure: '', // Config within public will be also exposed to the client public: { baseUrl: '', baseUrlLegacy: '', baseUrlAdminLegacy: '', baseUrlTypo3: '', baseUrlMercure: '', } }, hooks: { 'builder:watch': console.log }, app: { head: { title: 'Opentalent', meta: [ { charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, { hid: 'description', name: 'description', content: '' }, { name: 'msapplication-TileColor', content: '#324250' }, { name: 'msapplication-TileImage', content: '/favicon/mstile-144x144.png' } ], link: [ { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }, { rel: 'apple-touch-icon-precomposed', sizes: '57x57', href: '/favicon/apple-touch-icon-57x57.png' }, { rel: 'apple-touch-icon-precomposed', sizes: '114x114', href: '/favicon/apple-touch-icon-114x114.png' }, { rel: 'apple-touch-icon-precomposed', sizes: '72x72', href: '/favicon/apple-touch-icon-72x72.png' }, { rel: 'apple-touch-icon-precomposed', sizes: '144x144', href: '/favicon/apple-touch-icon-144x144.png' }, { rel: 'apple-touch-icon-precomposed', sizes: '120x120', href: '/favicon/apple-touch-icon-120x120.png' }, { rel: 'apple-touch-icon-precomposed', sizes: '152x152', href: '/favicon/apple-touch-icon-152x152.png' }, { rel: 'icon', sizes: '32x32', type: 'image/x-icon', href: '/favicon/favicon-32x32.png' }, { rel: 'icon', sizes: '16x16', type: 'image/x-icon', href: '/favicon/favicon-16x16.png' }, ] } }, modules: [ [ '@pinia/nuxt', { autoImports: [ // automatically imports `usePinia()` 'defineStore', // automatically imports `usePinia()` as `usePiniaStore()` ['defineStore', 'definePiniaStore'], ], } ], '@pinia-orm/nuxt', 'nuxt-lodash', '@nuxtjs/i18n', ], typescript: { strict: true }, //@ts-ignore i18n: { langDir: 'lang', lazy: true, locales: [ { code: 'en', iso: 'en-US', file: 'en.json', name: 'English' }, { code: 'fr', iso: 'fr-FR', file: 'fr.json', name: 'Français' } ], defaultLocale: 'fr', fallbackLocale: 'en', detectBrowserLanguage: false, vueI18n: { legacy: false, } } as I18nOptions, build: { transpile: ['vuetify'], }, vite: { define: { 'process.env.DEBUG': process.env.DEBUG, }, //@ts-ignore server : { https: { key: fs.readFileSync('local.app-v3.opentalent.fr.key'), cert: fs.readFileSync('local.app-v3.opentalent.fr.crt'), }, //@ts-ignore port: 443, hmr: { protocol: 'wss' } }, } })