mirror of
https://framagit.org/les/gancio.git
synced 2025-01-31 16:42:22 +01:00
126 lines
2.9 KiB
JavaScript
126 lines
2.9 KiB
JavaScript
const config = require('./server/config.js')
|
|
|
|
module.exports = {
|
|
telemetry: false,
|
|
modern: (process.env.NODE_ENV === 'production') && 'client',
|
|
/*
|
|
** Headers of the page
|
|
*/
|
|
head: {
|
|
meta: [
|
|
{ charset: 'utf-8' },
|
|
{ name: 'viewport', content: 'width=device-width, initial-scale=1' }
|
|
],
|
|
link: [{ rel: 'icon', type: 'image/png', href: '/logo.png' }]
|
|
},
|
|
dev: (process.env.NODE_ENV !== 'production'),
|
|
server: config.server,
|
|
|
|
/*
|
|
** Customize the progress-bar component
|
|
*/
|
|
loading: '~/components/Loading.vue',
|
|
/*
|
|
** Global CSS
|
|
*/
|
|
css: [
|
|
'@/assets/style.less',
|
|
'@mdi/font/css/materialdesignicons.css'
|
|
],
|
|
|
|
/*
|
|
** Plugins to load before mounting the App
|
|
*/
|
|
plugins: [
|
|
'@/plugins/i18n.js',
|
|
'@/plugins/filters', // text filters, datetime filters, generic transformation helpers etc.
|
|
'@/plugins/vue-clipboard', // vuetify
|
|
'@/plugins/axios', // axios baseurl configuration
|
|
'@/plugins/validators', // inject validators
|
|
'@/plugins/api', // api helpers
|
|
{ src: '@/plugins/v-calendar', ssr: false } // v-calendar
|
|
],
|
|
|
|
render: {
|
|
compressor: false,
|
|
bundleRenderer: {
|
|
shouldPreload: (file, type) => {
|
|
return ['script', 'style', 'font'].includes(type)
|
|
}
|
|
}
|
|
},
|
|
/*
|
|
** Nuxt.js modules
|
|
*/
|
|
modules: [
|
|
// Doc: https://axios.nuxtjs.org/usage
|
|
'./@nuxtjs/axios',
|
|
'./@nuxtjs/auth',
|
|
['nuxt-express-module', { expressPath: 'server/', routesPath: 'server/routes' }]
|
|
],
|
|
|
|
/*
|
|
** Axios module configuration
|
|
* See https://github.com/nuxt-community/axios-module#options
|
|
*/
|
|
axios: {
|
|
prefix: '/api'
|
|
},
|
|
auth: {
|
|
// localStorage: false, // https://github.com/nuxt-community/auth-module/issues/425
|
|
cookie: {
|
|
prefix: 'auth.',
|
|
options: {
|
|
maxAge: 60 * 60 * 24 * 30 * 12 * 5
|
|
}
|
|
},
|
|
strategies: {
|
|
local: {
|
|
endpoints: {
|
|
login: {
|
|
url: '../oauth/login',
|
|
method: 'post',
|
|
propertyName: 'access_token',
|
|
withCredentials: true,
|
|
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
|
},
|
|
logout: false,
|
|
user: { url: '/user', method: 'get', propertyName: false }
|
|
},
|
|
tokenRequired: true,
|
|
tokenType: 'Bearer'
|
|
}
|
|
}
|
|
},
|
|
|
|
buildModules: [
|
|
'@nuxtjs/vuetify'
|
|
],
|
|
vuetify: {
|
|
defaultAssets: false,
|
|
optionsPath: './vuetify.options.js',
|
|
treeShake: true
|
|
/* module options */
|
|
},
|
|
|
|
/*
|
|
** Build configuration
|
|
*/
|
|
build: {
|
|
babel: {
|
|
// envName: server, client, modern
|
|
presets ({ envName }) {
|
|
return [
|
|
[
|
|
'@nuxt/babel-preset-app',
|
|
{
|
|
corejs: { version: 3 }
|
|
}
|
|
]
|
|
]
|
|
},
|
|
plugins: [['@babel/plugin-proposal-private-methods', { loose: true }]]
|
|
},
|
|
cache: true
|
|
}
|
|
}
|