nuxt.config.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import { defineNuxtConfig } from 'nuxt'
  2. import fs from 'fs';
  3. // https://v3.nuxtjs.org/api/configuration/nuxt.config
  4. // @ts-ignore
  5. export default defineNuxtConfig({
  6. vuetify: {
  7. customVariables: ['~/assets/css/variables.scss'],
  8. treeShake: true,
  9. theme: {
  10. options: {
  11. customProperties: true
  12. },
  13. dark: false,
  14. themes: {
  15. light: {
  16. ot_green: '#00ad8e',
  17. ot_light_green: '#a9e0d6',
  18. ot_dark_grey: '#324150',
  19. ot_dark_grey_hover: '#2c3a48',
  20. ot_grey: '#777777',
  21. ot_header_menu: '#ECE7E5',
  22. ot_light_grey: '#f5f5f5',
  23. ot_super_light_grey: '#ecf0f5',
  24. ot_danger: '#f56954',
  25. ot_success: '#00a65a',
  26. ot_warning: '#f39c12',
  27. ot_info: '#3c8dbc',
  28. ot_menu_color: '#b8c7ce',
  29. ot_content_color: '#ecf0f4',
  30. ot_border_menu: '#f4f4f4',
  31. ot_white: '#ffffff',
  32. ot_black: '#000000'
  33. },
  34. }
  35. }
  36. },
  37. css: [
  38. 'vuetify/lib/styles/main.sass'
  39. ],
  40. runtimeConfig: {
  41. // Private config that is only available on the server
  42. baseUrl: '',
  43. baseUrlLegacy: '',
  44. baseUrlAdminLegacy: '',
  45. baseUrlTypo3: '',
  46. baseUrlMercure: '',
  47. // Config within public will be also exposed to the client
  48. public: {
  49. baseUrl: '',
  50. baseUrlLegacy: '',
  51. baseUrlAdminLegacy: '',
  52. baseUrlTypo3: '',
  53. baseUrlMercure: '',
  54. }
  55. },
  56. hooks: {
  57. 'builder:watch': console.log
  58. },
  59. app: {
  60. head: {
  61. title: 'Opentalent',
  62. meta: [
  63. { charset: 'utf-8' },
  64. { name: 'viewport', content: 'width=device-width, initial-scale=1' },
  65. { hid: 'description', name: 'description', content: '' },
  66. { name: 'msapplication-TileColor', content: '#324250' },
  67. { name: 'msapplication-TileImage', content: '/favicon/mstile-144x144.png' }
  68. ],
  69. link: [
  70. { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
  71. { rel: 'apple-touch-icon-precomposed', sizes: '57x57', href: '/favicon/apple-touch-icon-57x57.png' },
  72. { rel: 'apple-touch-icon-precomposed', sizes: '114x114', href: '/favicon/apple-touch-icon-114x114.png' },
  73. { rel: 'apple-touch-icon-precomposed', sizes: '72x72', href: '/favicon/apple-touch-icon-72x72.png' },
  74. { rel: 'apple-touch-icon-precomposed', sizes: '144x144', href: '/favicon/apple-touch-icon-144x144.png' },
  75. { rel: 'apple-touch-icon-precomposed', sizes: '120x120', href: '/favicon/apple-touch-icon-120x120.png' },
  76. { rel: 'apple-touch-icon-precomposed', sizes: '152x152', href: '/favicon/apple-touch-icon-152x152.png' },
  77. { rel: 'icon', sizes: '32x32', type: 'image/x-icon', href: '/favicon/favicon-32x32.png' },
  78. { rel: 'icon', sizes: '16x16', type: 'image/x-icon', href: '/favicon/favicon-16x16.png' },
  79. ]
  80. }
  81. },
  82. modules: [
  83. [
  84. '@pinia/nuxt',
  85. {
  86. autoImports: [
  87. // automatically imports `usePinia()`
  88. 'defineStore',
  89. // automatically imports `usePinia()` as `usePiniaStore()`
  90. ['defineStore', 'definePiniaStore'],
  91. ],
  92. },
  93. ],
  94. ],
  95. typescript: {
  96. strict: true
  97. },
  98. build: {
  99. transpile: ['vuetify'],
  100. },
  101. vite: {
  102. define: {
  103. 'process.env.DEBUG': false,
  104. },
  105. //@ts-ignore
  106. server : {
  107. https: {
  108. key: fs.readFileSync('local.app-v3.opentalent.fr.key'),
  109. cert: fs.readFileSync('local.app-v3.opentalent.fr.crt'),
  110. },
  111. port: 443,
  112. hmr: {
  113. protocol: 'wss'
  114. }
  115. }
  116. }
  117. })