40 lines
1.8 KiB
TypeScript
40 lines
1.8 KiB
TypeScript
// https://nuxt.com/docs/api/configuration/nuxt-config
|
|
export default defineNuxtConfig({
|
|
compatibilityDate: '2025-07-15',
|
|
devtools: { enabled: true },
|
|
|
|
// ⚠️ Web portal ต้องใช้ port 5173 เท่านั้น — ห้ามใช้ 3000
|
|
// (3000 ถูก add-in dev server ใช้อยู่: https://localhost:3000)
|
|
devServer: {
|
|
port: 5173,
|
|
},
|
|
|
|
modules: ['@nuxtjs/tailwindcss'],
|
|
|
|
// config ทั้งหมดแยกเป็น env ได้ (กติกา: ห้าม hardcode) — override ด้วย env
|
|
// NUXT_PUBLIC_API_BASE_URL / NUXT_PUBLIC_KEYCLOAK_AUTHORITY / NUXT_PUBLIC_KEYCLOAK_CLIENT_ID
|
|
runtimeConfig: {
|
|
public: {
|
|
// เว็บเป็น top-level http page → เรียก backend ด้วย http ได้ (ไม่มีปัญหา mixed content แบบ task pane)
|
|
apiBaseUrl: 'http://localhost:5075',
|
|
// Keycloak dev ใช้ https:8443 (cert ของ office-addin-dev-certs — เชื่อถือได้ในเครื่อง)
|
|
keycloakAuthority: 'https://localhost:8443/realms/word-versioning',
|
|
keycloakClientId: 'word-versioning-web',
|
|
},
|
|
},
|
|
|
|
// ~/assets/css/tailwind.css ถูก @nuxtjs/tailwindcss pick up อัตโนมัติ
|
|
|
|
app: {
|
|
head: {
|
|
title: 'Word Versioning',
|
|
// กัน dark-mode flash (FOUC) ก่อน Vue hydrate — ต้องใช้คีย์/ค่าเดียวกับ useTheme.ts
|
|
script: [
|
|
{
|
|
innerHTML:
|
|
"(function(){try{var t=localStorage.getItem('theme-preference');if(!t){t=window.matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light';}if(t==='dark'){document.documentElement.classList.add('dark');}}catch(e){}})();",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
})
|