-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnuxt.config.js
126 lines (124 loc) · 2.84 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
const { cacheAndCopy } = require('./cache-me')
const mockRoutes = require('./route-mock')
const { initialRoutes, additionalRoutes, initialTotalRoutes, additionalTotalRoutes } = mockRoutes
const routesToGenerate = additionalRoutes
const routesList = additionalTotalRoutes
const isDev = process.env.DEPLOY_ENV === 'DEV'
module.exports = {
target: 'static',
head: {
title: 'my-project',
htmlAttrs: {
lang: 'en'
},
meta: [{ charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }]
},
env: {
isDev: isDev,
baseUrl: process.env.BASE_URL || 'http://localhost:3000',
apiBaseUrl: process.env.DEPLOY_ENV === 'PROD' ? 'REPLACE_PROD_API' : 'REPLACE_DEV_API',
MAPBOX_TOKEN: 'REPLACE_MAPBOX_TOKEN'
},
/*
** Customize the progress bar color
*/
loading: { color: '#0055aa' },
/*
** Plugins
*/
plugins: [],
/*
** Modules
*/
modules: ['@nuxtjs/axios', 'nuxt-purgecss'],
/*
** axios module config
*/
axios: {
debug: isDev
},
/*
** CSS
*/
css: [{ src: 'assets/scss/bulma-overrides.scss', lang: 'scss' }, { src: 'assets/scss/main.scss', lang: 'scss' }],
/*
** PurgeCSS config
*/
purgeCSS: {
enabled: true
},
/*
** Generate configuration
** Define routes used for building static pages
*/
generate: {
fallback: true,
routes: function(callback) {
const routes = routesToGenerate.concat({
route: '/',
payload: {
routesList: routesList
}
})
callback(null, routes)
}
},
/*
** Build configuration
*/
build: {
/*
** Analyze build files
*/
analyze: {
analyzerMode: isDev ? 'static' : 'disabled'
},
/*
** Extract CSS in main chunk to separate cachaeble CSS file
** per https://github.com/nuxt/nuxt.js/issues/3166#issuecomment-409004911
*/
extractCSS: true,
optimization: {
splitChunks: {
cacheGroups: {
styles: {
name: 'styles',
test: /\.(s?css|vue)$/,
chunks: 'all',
enforce: true
}
}
}
},
// Set babel plugin per
// https://stackoverflow.com/questions/53922898/nuxt-js-client-fails-in-production-but-works-during-development
babel: {
plugins: ['dynamic-import-node']
},
/*
** Run ESLint on save
*/
extend(config, ctx) {
if (ctx.isDev && ctx.isClient) {
config.module.rules.push({
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /(node_modules)/
})
}
}
},
hooks: {
generate: {
// async before() {
// console.log('this bef orehook..')
// await putNuxtClientBack()
// },
async done() {
await cacheAndCopy()
console.log('done')
}
}
}
}