This repository has been archived by the owner on Jan 19, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 14
/
nuxt.config.js
99 lines (91 loc) · 2.34 KB
/
nuxt.config.js
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
93
94
95
96
97
98
99
const pkg = require('./package');
let BASE_URL = process.env.BASE_URL;
if (
BASE_URL !== undefined &&
BASE_URL.length === 1 &&
BASE_URL.substr(BASE_URL.length - 1) === '/'
) {
BASE_URL = '';
} else if (
BASE_URL !== undefined &&
BASE_URL.length > 0 &&
BASE_URL.substr(BASE_URL.length - 1) !== '/'
) {
BASE_URL += '/';
}
// TODO: Compatibity and performance test in browsers
module.exports = {
mode: 'universal',
env: {
baseUrl: BASE_URL !== undefined ? BASE_URL : '',
isDev: process.env.NODE_ENV !== 'production'
},
router: {
base: BASE_URL !== undefined ? BASE_URL : ''
},
buildDir: 'bundle',
dev: process.env.NODE_ENV !== 'production',
head: {
title: 'Opa',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: pkg.description }
],
script: [{ src: 'https://polyfill.io/v3/polyfill.min.js?flags=gated' }],
link: [
{
rel: 'icon',
type: 'image/x-icon',
href: `${
BASE_URL !== undefined ? BASE_URL : ''
}/favicon/favicon-normal.png`,
id: 'favicon'
},
{
rel: 'stylesheet',
href: 'https://fonts.googleapis.com/css?family=Roboto'
}
]
},
loading: { color: '#fff' },
css: [
{ src: '~global-styles/main.scss', lang: 'scss' },
'@fortawesome/fontawesome-svg-core/styles.css'
],
plugins: [
'@/plugins/element-ui',
'@/plugins/vue-fontawesome',
'@/plugins/i18n',
{ src: '@/plugins/vue-intersect', ssr: false },
{ src: '@/plugins/global-mixins', ssr: false },
{ src: '@/plugins/filters', ssr: false }
],
modules: ['@nuxtjs/axios'],
axios: {},
build: {
transpile: ['cool-emoji-picker', /^element-ui/],
extend(config, ctx) {
// Run ESLint on save
if (ctx.isDev && ctx.isClient) {
config.module.rules.push({
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /(node_modules)/,
options: {
fix: true
}
});
config.module.rules.push({
test: /\.mp3$/,
include: '/(assets/audio)/',
loader: 'file-loader'
});
}
if (!ctx.isDev) {
config.output.publicPath = './_nuxt/';
}
}
}
};