-
Notifications
You must be signed in to change notification settings - Fork 9
/
nuxt.config.ts
92 lines (91 loc) · 2.68 KB
/
nuxt.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import { defineNuxtConfig } from 'nuxt'
import pkg from './package.json'
// https://v3.nuxtjs.org/docs/directory-structure/nuxt.config
export default defineNuxtConfig({
// Server side rendering
ssr: false,
// App mode
mode: 'spa',
// Fetch mode,
fetch: {
server: false,
client: true
},
// Source folder
srcDir: 'src/',
// Stylesheets
css: [
"@fortawesome/fontawesome-free/css/all.css",
'primevue/resources/themes/bootstrap4-light-blue/theme.css',
'primevue/resources/primevue.css',
'primeicons/primeicons.css',
'primeflex/primeflex.css',
'prismjs/themes/prism-coy.css',
'~/assets/scss/layout.scss',
"~/assets/scss/app.scss"
],
// Components (임시로 처리. 특정 버전에서 auto-import 동작하지 않음)
// components: {
// global: true,
// dirs: ['~/components']
// },
// Modules
modules: [
'@vueuse/nuxt'
],
// Build
build: {
transpile: [
'primevue',
],
extractCSS: true,
splitChunks: {
layouts: true
}
},
// Build 단계 모듈
buildModules: [],
// Private Runtime config (access server only)
privateRuntimeConfig: {
},
// Public Runtime config (access client and server)
publicRuntimeConfig: {
nodeEnv: process.env.NODE_ENV,
backendUrl: process.env.BACKEND_BASE_URL, // backend url
backendPort: process.env.BACKEND_BASE_PORT, // backend port
version: pkg.version, // app version
refreshInterval: 5000, // Refresh timeout
requestTimeout: 2000 // Request timeout
},
// Router
router: {},
// Hooks
hooks: {
'vite:extendConfig': (config, { isClient, isServer }) => {
if (isClient) {
// @ts-ignore
config.resolve.alias.vue = 'vue/dist/vue.esm-bundler'
}
}
},
// global meta info
meta: {
title: process.env.npm_package_name || '',
meta: [
{ charset: "utf-8" },
{ name: "viewport", content: "width=device-width, initial-scale=1" },
{ name: "description", content: process.env.npm_package_description || "", hid: "description" },
],
link: [
{ rel: "icon", type: "image/svg+xml", href: "/favicon.svg" },
],
// bodyAttrs: {
// style: "height: auto;"
// },
},
// Typescript
typescript: {
// Take Over Mode or Typescript Vue Plugin (Volar) 설치된 경우
shim: false
}
})