|
@@ -30,200 +30,216 @@ if (process.env.NUXT_ENV === 'dev') {
|
|
|
* @see https://nuxt.com/docs/api/configuration/nuxt-config
|
|
* @see https://nuxt.com/docs/api/configuration/nuxt-config
|
|
|
*/
|
|
*/
|
|
|
export default defineNuxtConfig({
|
|
export default defineNuxtConfig({
|
|
|
- ssr: true,
|
|
|
|
|
- experimental: {
|
|
|
|
|
- // Fix the 'Cannot stringify non POJO' bug
|
|
|
|
|
- // @see https://github.com/nuxt/nuxt/issues/20787
|
|
|
|
|
- renderJsonPayloads: false,
|
|
|
|
|
- },
|
|
|
|
|
- runtimeConfig: {
|
|
|
|
|
- // Private config that is only available on the server
|
|
|
|
|
- env: '',
|
|
|
|
|
- baseUrl: '',
|
|
|
|
|
- baseUrlLegacy: '',
|
|
|
|
|
- baseUrlAdminLegacy: '',
|
|
|
|
|
- baseUrlTypo3: '',
|
|
|
|
|
- baseUrlMercure: '',
|
|
|
|
|
- fileStorageBaseUrl: '',
|
|
|
|
|
- supportUrl: '',
|
|
|
|
|
- basicomptaUrl: 'https://app.basicompta.fr/',
|
|
|
|
|
- // Config within public will be also exposed to the client
|
|
|
|
|
- public: {
|
|
|
|
|
- env: '',
|
|
|
|
|
- baseUrl: '',
|
|
|
|
|
- baseUrlLegacy: '',
|
|
|
|
|
- baseUrlAdminLegacy: '',
|
|
|
|
|
- baseUrlTypo3: '',
|
|
|
|
|
- baseUrlMercure: '',
|
|
|
|
|
- fileStorageBaseUrl: '',
|
|
|
|
|
- supportUrl: '',
|
|
|
|
|
- basicomptaUrl: 'https://app.basicompta.fr/',
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- hooks: {
|
|
|
|
|
- 'builder:watch': console.log,
|
|
|
|
|
- },
|
|
|
|
|
- app: {
|
|
|
|
|
- head: {
|
|
|
|
|
- title: 'Opentalent',
|
|
|
|
|
- meta: [
|
|
|
|
|
- { charset: 'utf-8' },
|
|
|
|
|
- { name: 'viewport', content: 'width=device-width, initial-scale=1' },
|
|
|
|
|
- { name: 'msapplication-TileColor', content: '#324250' },
|
|
|
|
|
- {
|
|
|
|
|
- name: 'msapplication-TileImage',
|
|
|
|
|
- content: '/favicon/favicon-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',
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- css: [
|
|
|
|
|
- '@/assets/css/global.scss',
|
|
|
|
|
- '@/assets/css/theme.scss',
|
|
|
|
|
- '@/assets/css/import.scss',
|
|
|
|
|
- '@vuepic/vue-datepicker/dist/main.css',
|
|
|
|
|
- ],
|
|
|
|
|
- typescript: {
|
|
|
|
|
- strict: true,
|
|
|
|
|
- },
|
|
|
|
|
- modules: [
|
|
|
|
|
- // eslint-disable-next-line require-await
|
|
|
|
|
- async (_, nuxt) => {
|
|
|
|
|
- nuxt.hooks.hook('vite:extendConfig', (config) =>
|
|
|
|
|
- // @ts-expect-error A revoir après que les lignes aient été décommentées
|
|
|
|
|
- (config.plugins ?? []).push(
|
|
|
|
|
- vuetify(),
|
|
|
|
|
- // Remplacer par cela quand l'issue https://github.com/vuetifyjs/vuetify-loader/issues/273 sera règlée..
|
|
|
|
|
- // voir aussi : https://github.com/nuxt/nuxt/issues/15412 et https://github.com/vuetifyjs/vuetify-loader/issues/290
|
|
|
|
|
- // voir aussi : https://github.com/jrutila/nuxt3-vuetify3-bug
|
|
|
|
|
- // vuetify({
|
|
|
|
|
- // styles: { configFile: './assets/css/settings.scss' }
|
|
|
|
|
- // })
|
|
|
|
|
- ),
|
|
|
|
|
- )
|
|
|
|
|
- },
|
|
|
|
|
- [
|
|
|
|
|
- '@pinia/nuxt',
|
|
|
|
|
- {
|
|
|
|
|
- autoImports: [
|
|
|
|
|
- // automatically imports `usePinia()`
|
|
|
|
|
- 'defineStore',
|
|
|
|
|
- // automatically imports `usePinia()` as `usePiniaStore()`
|
|
|
|
|
- ['defineStore', 'definePiniaStore'],
|
|
|
|
|
- ],
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- '@pinia-orm/nuxt',
|
|
|
|
|
- '@nuxtjs/i18n',
|
|
|
|
|
- '@nuxt/devtools',
|
|
|
|
|
- '@nuxt/image',
|
|
|
|
|
- 'nuxt-prepare',
|
|
|
|
|
- 'nuxt-vitalizer',
|
|
|
|
|
- ],
|
|
|
|
|
- vite: {
|
|
|
|
|
- esbuild: {
|
|
|
|
|
- drop: process.env.DEBUG ? [] : ['console', 'debugger'],
|
|
|
|
|
- tsconfigRaw: {
|
|
|
|
|
- compilerOptions: {
|
|
|
|
|
- experimentalDecorators: true,
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- ssr: {
|
|
|
|
|
- // with ssr enabled, this config is required to load vuetify properly
|
|
|
|
|
- noExternal: ['vuetify'],
|
|
|
|
|
- },
|
|
|
|
|
- server: {
|
|
|
|
|
- https,
|
|
|
|
|
- // @ts-expect-error J'ignore pourquoi cette erreur TS se produit, cette propriété est valide
|
|
|
|
|
- port: 443,
|
|
|
|
|
- hmr: {
|
|
|
|
|
- protocol: 'wss',
|
|
|
|
|
- port: 24678,
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- // Hide the sourcemaps warnings with vuetify
|
|
|
|
|
- // @see https://github.com/vuetifyjs/vuetify-loader/issues/290#issuecomment-1435702713
|
|
|
|
|
- sourcemap: {
|
|
|
|
|
- server: false,
|
|
|
|
|
- client: false,
|
|
|
|
|
- },
|
|
|
|
|
- i18n: {
|
|
|
|
|
- langDir: 'lang',
|
|
|
|
|
- lazy: true,
|
|
|
|
|
- strategy: 'no_prefix',
|
|
|
|
|
- locales: [
|
|
|
|
|
- {
|
|
|
|
|
- code: 'en',
|
|
|
|
|
- iso: 'en-US',
|
|
|
|
|
- file: 'en.json',
|
|
|
|
|
- name: 'English',
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- code: 'fr',
|
|
|
|
|
- iso: 'fr-FR',
|
|
|
|
|
- file: 'fr.json',
|
|
|
|
|
- name: 'Français',
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- defaultLocale: 'fr',
|
|
|
|
|
- detectBrowserLanguage: false,
|
|
|
|
|
- vueI18n: './i18n.config.ts',
|
|
|
|
|
- },
|
|
|
|
|
- image: {
|
|
|
|
|
- provider: 'none',
|
|
|
|
|
- },
|
|
|
|
|
- build: {
|
|
|
|
|
- transpile,
|
|
|
|
|
- },
|
|
|
|
|
- ignore: [process.env.NUXT_ENV === 'prod' ? 'pages/dev/*' : ''],
|
|
|
|
|
- prepare: {
|
|
|
|
|
- scripts: ['prepare/buildIndex.ts'],
|
|
|
|
|
- },
|
|
|
|
|
-})
|
|
|
|
|
|
|
+ ssr: true,
|
|
|
|
|
+
|
|
|
|
|
+ experimental: {
|
|
|
|
|
+ // Fix the 'Cannot stringify non POJO' bug
|
|
|
|
|
+ // @see https://github.com/nuxt/nuxt/issues/20787
|
|
|
|
|
+ renderJsonPayloads: false,
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ runtimeConfig: {
|
|
|
|
|
+ // Private config that is only available on the server
|
|
|
|
|
+ env: '',
|
|
|
|
|
+ baseUrl: '',
|
|
|
|
|
+ baseUrlLegacy: '',
|
|
|
|
|
+ baseUrlAdminLegacy: '',
|
|
|
|
|
+ baseUrlTypo3: '',
|
|
|
|
|
+ baseUrlMercure: '',
|
|
|
|
|
+ fileStorageBaseUrl: '',
|
|
|
|
|
+ supportUrl: '',
|
|
|
|
|
+ basicomptaUrl: 'https://app.basicompta.fr/',
|
|
|
|
|
+ // Config within public will be also exposed to the client
|
|
|
|
|
+ public: {
|
|
|
|
|
+ env: '',
|
|
|
|
|
+ baseUrl: '',
|
|
|
|
|
+ baseUrlLegacy: '',
|
|
|
|
|
+ baseUrlAdminLegacy: '',
|
|
|
|
|
+ baseUrlTypo3: '',
|
|
|
|
|
+ baseUrlMercure: '',
|
|
|
|
|
+ fileStorageBaseUrl: '',
|
|
|
|
|
+ supportUrl: '',
|
|
|
|
|
+ basicomptaUrl: 'https://app.basicompta.fr/',
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ hooks: {
|
|
|
|
|
+ 'builder:watch': console.log,
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ app: {
|
|
|
|
|
+ head: {
|
|
|
|
|
+ title: 'Opentalent',
|
|
|
|
|
+ meta: [
|
|
|
|
|
+ { charset: 'utf-8' },
|
|
|
|
|
+ { name: 'viewport', content: 'width=device-width, initial-scale=1' },
|
|
|
|
|
+ { name: 'msapplication-TileColor', content: '#324250' },
|
|
|
|
|
+ {
|
|
|
|
|
+ name: 'msapplication-TileImage',
|
|
|
|
|
+ content: '/favicon/favicon-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',
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ css: [
|
|
|
|
|
+ '@/assets/css/global.scss',
|
|
|
|
|
+ '@/assets/css/theme.scss',
|
|
|
|
|
+ '@/assets/css/import.scss',
|
|
|
|
|
+ '@vuepic/vue-datepicker/dist/main.css',
|
|
|
|
|
+ ],
|
|
|
|
|
+
|
|
|
|
|
+ typescript: {
|
|
|
|
|
+ strict: true,
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ modules: [
|
|
|
|
|
+ // eslint-disable-next-line require-await
|
|
|
|
|
+ async (_, nuxt) => {
|
|
|
|
|
+ nuxt.hooks.hook('vite:extendConfig', (config) =>
|
|
|
|
|
+ // @ts-expect-error A revoir après que les lignes aient été décommentées
|
|
|
|
|
+ (config.plugins ?? []).push(
|
|
|
|
|
+ vuetify(),
|
|
|
|
|
+ // Remplacer par cela quand l'issue https://github.com/vuetifyjs/vuetify-loader/issues/273 sera règlée..
|
|
|
|
|
+ // voir aussi : https://github.com/nuxt/nuxt/issues/15412 et https://github.com/vuetifyjs/vuetify-loader/issues/290
|
|
|
|
|
+ // voir aussi : https://github.com/jrutila/nuxt3-vuetify3-bug
|
|
|
|
|
+ // vuetify({
|
|
|
|
|
+ // styles: { configFile: './assets/css/settings.scss' }
|
|
|
|
|
+ // })
|
|
|
|
|
+ ),
|
|
|
|
|
+ )
|
|
|
|
|
+ },
|
|
|
|
|
+ [
|
|
|
|
|
+ '@pinia/nuxt',
|
|
|
|
|
+ {
|
|
|
|
|
+ autoImports: [
|
|
|
|
|
+ // automatically imports `usePinia()`
|
|
|
|
|
+ 'defineStore',
|
|
|
|
|
+ // automatically imports `usePinia()` as `usePiniaStore()`
|
|
|
|
|
+ ['defineStore', 'definePiniaStore'],
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
|
|
+ '@pinia-orm/nuxt',
|
|
|
|
|
+ '@nuxtjs/i18n',
|
|
|
|
|
+ '@nuxt/devtools',
|
|
|
|
|
+ '@nuxt/image',
|
|
|
|
|
+ 'nuxt-prepare',
|
|
|
|
|
+ 'nuxt-vitalizer',
|
|
|
|
|
+ ],
|
|
|
|
|
+
|
|
|
|
|
+ vite: {
|
|
|
|
|
+ esbuild: {
|
|
|
|
|
+ drop: process.env.DEBUG ? [] : ['console', 'debugger'],
|
|
|
|
|
+ tsconfigRaw: {
|
|
|
|
|
+ compilerOptions: {
|
|
|
|
|
+ experimentalDecorators: true,
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ ssr: {
|
|
|
|
|
+ // with ssr enabled, this config is required to load vuetify properly
|
|
|
|
|
+ noExternal: ['vuetify'],
|
|
|
|
|
+ },
|
|
|
|
|
+ server: {
|
|
|
|
|
+ https,
|
|
|
|
|
+ // @ts-expect-error J'ignore pourquoi cette erreur TS se produit, cette propriété est valide
|
|
|
|
|
+ port: 443,
|
|
|
|
|
+ hmr: {
|
|
|
|
|
+ protocol: 'wss',
|
|
|
|
|
+ port: 24678,
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ // Hide the sourcemaps warnings with vuetify
|
|
|
|
|
+ // @see https://github.com/vuetifyjs/vuetify-loader/issues/290#issuecomment-1435702713
|
|
|
|
|
+ sourcemap: {
|
|
|
|
|
+ server: false,
|
|
|
|
|
+ client: false,
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ i18n: {
|
|
|
|
|
+ langDir: 'lang',
|
|
|
|
|
+ lazy: true,
|
|
|
|
|
+ strategy: 'no_prefix',
|
|
|
|
|
+ locales: [
|
|
|
|
|
+ {
|
|
|
|
|
+ code: 'en',
|
|
|
|
|
+ iso: 'en-US',
|
|
|
|
|
+ file: 'en.json',
|
|
|
|
|
+ name: 'English',
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ code: 'fr',
|
|
|
|
|
+ iso: 'fr-FR',
|
|
|
|
|
+ file: 'fr.json',
|
|
|
|
|
+ name: 'Français',
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
|
|
+ defaultLocale: 'fr',
|
|
|
|
|
+ detectBrowserLanguage: false,
|
|
|
|
|
+ vueI18n: './i18n.config.ts',
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ image: {
|
|
|
|
|
+ provider: 'none',
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ build: {
|
|
|
|
|
+ transpile,
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ ignore: [process.env.NUXT_ENV === 'prod' ? 'pages/dev/*' : ''],
|
|
|
|
|
+
|
|
|
|
|
+ prepare: {
|
|
|
|
|
+ scripts: ['prepare/buildIndex.ts'],
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ compatibilityDate: '2025-02-07'
|
|
|
|
|
+})
|