2019-06-26 14:44:21 +02:00
|
|
|
const conf = require('config')
|
|
|
|
|
2019-04-03 00:25:12 +02:00
|
|
|
module.exports = {
|
|
|
|
mode: 'universal',
|
|
|
|
/*
|
|
|
|
** Headers of the page
|
|
|
|
*/
|
|
|
|
head: {
|
|
|
|
meta: [
|
|
|
|
{ charset: 'utf-8' },
|
2019-09-11 19:12:24 +02:00
|
|
|
{ name: 'viewport', content: 'width=device-width, initial-scale=1' }
|
2019-04-03 00:25:12 +02:00
|
|
|
],
|
|
|
|
link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }]
|
|
|
|
},
|
2019-06-06 23:54:32 +02:00
|
|
|
dev: (process.env.NODE_ENV !== 'production'),
|
2019-04-03 00:25:12 +02:00
|
|
|
|
2019-06-26 14:44:21 +02:00
|
|
|
server: conf.server,
|
|
|
|
|
2019-04-03 00:25:12 +02:00
|
|
|
/*
|
|
|
|
** Customize the progress-bar color
|
|
|
|
*/
|
2020-01-15 23:13:43 +01:00
|
|
|
loading: { color: 'orange', height: '5px' },
|
2019-04-03 00:25:12 +02:00
|
|
|
/*
|
|
|
|
** Global CSS
|
|
|
|
*/
|
|
|
|
css: [
|
2019-09-17 16:05:46 +02:00
|
|
|
'bootstrap/dist/css/bootstrap.min.css',
|
2020-01-15 23:13:43 +01:00
|
|
|
'element-ui/lib/theme-chalk/index.css',
|
|
|
|
'element-ui/lib/theme-chalk/display.css',
|
|
|
|
'@/assets/style.less'
|
2019-04-03 00:25:12 +02:00
|
|
|
],
|
2019-06-21 23:52:18 +02:00
|
|
|
|
2019-04-03 00:25:12 +02:00
|
|
|
/*
|
|
|
|
** Plugins to load before mounting the App
|
|
|
|
*/
|
2019-05-30 12:04:14 +02:00
|
|
|
plugins: [
|
|
|
|
'@/plugins/element-ui', // UI library -> https://element.eleme.io/#/en-US/
|
2019-06-07 17:02:33 +02:00
|
|
|
'@/plugins/filters', // text filters, datetime, etc.
|
2019-05-30 12:04:14 +02:00
|
|
|
'@/plugins/vue-awesome', // icon
|
2019-06-25 01:05:38 +02:00
|
|
|
'@/plugins/axios', // axios baseurl configuration
|
2019-08-10 15:00:08 +02:00
|
|
|
{ src: '@/plugins/v-calendar', ssr: false }, // calendar, fix ssr
|
2019-06-25 01:05:38 +02:00
|
|
|
'@/plugins/i18n.js'
|
2019-05-30 12:04:14 +02:00
|
|
|
],
|
2019-11-13 17:57:37 +01:00
|
|
|
|
|
|
|
render: {
|
2020-01-15 23:13:43 +01:00
|
|
|
compressor: false,
|
|
|
|
bundleRenderer: {
|
|
|
|
shouldPreload: (file, type) => {
|
|
|
|
return ['script', 'style', 'font'].includes(type)
|
|
|
|
}
|
|
|
|
}
|
2019-11-13 17:57:37 +01:00
|
|
|
},
|
2019-04-03 00:25:12 +02:00
|
|
|
/*
|
|
|
|
** Nuxt.js modules
|
|
|
|
*/
|
|
|
|
modules: [
|
2019-09-11 11:58:42 +02:00
|
|
|
['nuxt-express-module', { expressPath: 'server/', routesPath: 'server/routes' }],
|
2019-04-03 00:25:12 +02:00
|
|
|
// Doc: https://axios.nuxtjs.org/usage
|
2019-04-26 23:14:43 +02:00
|
|
|
'@nuxtjs/axios',
|
2019-09-11 19:12:24 +02:00
|
|
|
'@nuxtjs/auth'
|
2019-04-03 00:25:12 +02:00
|
|
|
],
|
|
|
|
/*
|
|
|
|
** Axios module configuration
|
2019-06-21 23:52:18 +02:00
|
|
|
* See https://github.com/nuxt-community/axios-module#options
|
2019-04-03 00:25:12 +02:00
|
|
|
*/
|
|
|
|
axios: {
|
2019-06-07 17:02:33 +02:00
|
|
|
prefix: '/api'
|
2019-04-03 00:25:12 +02:00
|
|
|
},
|
2019-04-26 23:14:43 +02:00
|
|
|
auth: {
|
2019-11-01 18:22:51 +01:00
|
|
|
redirect: {
|
2020-01-15 23:13:43 +01:00
|
|
|
login: '/login'
|
2019-11-01 18:22:51 +01:00
|
|
|
},
|
2019-04-26 23:14:43 +02:00
|
|
|
strategies: {
|
|
|
|
local: {
|
|
|
|
endpoints: {
|
|
|
|
login: { url: '/auth/login', method: 'post', propertyName: 'token' },
|
2019-05-30 12:04:14 +02:00
|
|
|
logout: false,
|
2020-01-21 14:46:45 +01:00
|
|
|
user: { url: '/auth/user', method: 'get', propertyName: false }
|
2019-07-23 01:31:43 +02:00
|
|
|
},
|
2019-09-17 16:05:46 +02:00
|
|
|
tokenRequired: true,
|
2019-07-23 01:31:43 +02:00
|
|
|
tokenType: 'Bearer'
|
2019-04-26 23:14:43 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
2019-04-30 15:16:50 +02:00
|
|
|
|
2019-04-03 00:25:12 +02:00
|
|
|
/*
|
|
|
|
** Build configuration
|
|
|
|
*/
|
|
|
|
build: {
|
2020-01-16 00:09:07 +01:00
|
|
|
optimization: {
|
|
|
|
minimize: true,
|
|
|
|
namedModules: true,
|
|
|
|
namedChunks: true,
|
|
|
|
splitChunks: {
|
|
|
|
name: true,
|
|
|
|
chunks: 'all',
|
|
|
|
cacheGroups: {
|
|
|
|
vendor: {
|
|
|
|
test: /[\\/]node_modules[\\/]/,
|
|
|
|
name (module) {
|
|
|
|
// get the name. E.g. node_modules/packageName/not/this/part.js
|
|
|
|
// or node_modules/packageName
|
|
|
|
const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1]
|
|
|
|
// npm package names are URL-safe, but some servers don't like @ symbols
|
|
|
|
return `npm.${packageName.replace('@', '')}`
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
2020-01-15 23:13:43 +01:00
|
|
|
transpile: [/^element-ui/, /^vue-awesome/, /^@nuxt/],
|
2019-07-27 13:05:02 +02:00
|
|
|
splitChunks: {
|
|
|
|
layouts: true
|
|
|
|
},
|
2019-09-11 19:12:24 +02:00
|
|
|
cache: true
|
2019-04-03 00:25:12 +02:00
|
|
|
}
|
|
|
|
}
|