2026-08-18 12:52:40 +07:00
|
|
|
// 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'],
|
|
|
|
|
|
2026-08-20 21:34:45 +07:00
|
|
|
// ต้องระบุ cssPath ชัด (alias ~/ ชี้ srcDir = app/) — default แบบ relative
|
|
|
|
|
// "assets/css/tailwind.css" จะ resolve ต่อ rootDir แล้ว fallback ไปไฟล์ default
|
|
|
|
|
// ของ tailwindcss package แบบเงียบๆ (token/component classes ทั้งหมดหายจาก build)
|
|
|
|
|
tailwindcss: {
|
|
|
|
|
cssPath: '~/assets/css/tailwind.css',
|
|
|
|
|
},
|
|
|
|
|
|
2026-08-20 06:20:16 +07:00
|
|
|
// 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',
|
2026-09-10 13:59:45 +07:00
|
|
|
// ยิง ms-word:ofe ควบคู่กับการดาวน์โหลดหรือไม่ — '' = auto (ไม่ยิงบน Mac เพราะ Word 16.101+
|
|
|
|
|
// เมิน URL ทุกรูปแบบและเด้งหน้าเลือกไฟล์รำคาญ, ยิงบน Windows/อื่นๆ), 'on'/'off' = บังคับทุกที่ (v9.2)
|
|
|
|
|
openInWord: '',
|
2026-08-20 06:20:16 +07:00
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
2026-08-18 12:52:40 +07:00
|
|
|
// ~/assets/css/tailwind.css ถูก @nuxtjs/tailwindcss pick up อัตโนมัติ
|
|
|
|
|
|
|
|
|
|
app: {
|
|
|
|
|
head: {
|
|
|
|
|
title: 'Word Versioning',
|
2026-08-20 21:34:45 +07:00
|
|
|
htmlAttrs: { lang: 'th' },
|
|
|
|
|
// ฟอนต์ไทย: Sarabun (ใกล้ Sukhumvit ที่สุดบน Google Fonts) — ต้องมี 500/600 ด้วย
|
|
|
|
|
// เพราะ UI ใช้ font-medium/font-semibold หนัก (โหลดแค่ 400/700 จะเกิด faux-bold)
|
|
|
|
|
link: [
|
|
|
|
|
{ rel: 'preconnect', href: 'https://fonts.googleapis.com' },
|
|
|
|
|
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
|
|
|
|
{
|
|
|
|
|
rel: 'stylesheet',
|
|
|
|
|
href: 'https://fonts.googleapis.com/css2?family=Sarabun:wght@400;500;600;700&display=swap',
|
|
|
|
|
},
|
|
|
|
|
],
|
2026-08-18 12:52:40 +07:00
|
|
|
// กัน 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){}})();",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
})
|