nebula/nuxt.config.js

105 lines
2.4 KiB
JavaScript
Raw Normal View History

2020-06-22 17:13:42 +08:00
import appConfig from './config/app.config'
import apiConfig from './config/api.config'
import {isDevMode} from './environment'
2020-10-18 18:57:17 +08:00
const LodashModuleReplacementPlugin = require('lodash-webpack-plugin')
2020-06-22 17:13:42 +08:00
2020-06-19 17:10:44 +08:00
export default {
/*
** Nuxt rendering mode
** See https://nuxtjs.org/api/configuration-mode
*/
2020-10-18 18:57:17 +08:00
ssr: true,
2020-06-19 17:10:44 +08:00
/*
2020-06-21 21:56:34 +08:00
** Render configuration
*/
render: {
2020-07-31 16:17:12 +08:00
csp: false
2020-06-21 21:56:34 +08:00
},
2020-06-22 17:13:42 +08:00
modern: true,
dev: isDevMode,
2020-06-21 21:56:34 +08:00
env: {
2020-06-22 17:13:42 +08:00
BASE: apiConfig.BASE,
HOST_URL: apiConfig.SOCKET
},
cache: {
max: 100,
maxAge: 1000 * 60 * 15
2020-06-21 21:56:34 +08:00
},
/*
2020-06-19 17:10:44 +08:00
** Headers of the page
** See https://nuxtjs.org/api/configuration-head
*/
head: {
2020-06-22 17:13:42 +08:00
title: appConfig.meta.title,
2020-06-19 17:10:44 +08:00
meta: [
2020-06-30 17:50:32 +08:00
{charset: 'utf-8'},
{name: 'viewport', content: 'width=device-width, initial-scale=1'},
{hid: 'keywords', name: 'keywords', content: appConfig.meta.keywords},
{hid: 'description', name: 'description', content: appConfig.meta.description}
2020-06-19 17:10:44 +08:00
],
link: [
2020-06-30 17:50:32 +08:00
{rel: 'icon', type: 'image/x-icon', href: '/favicon.ico'}
2020-06-19 17:10:44 +08:00
]
},
/*
** Global CSS
*/
css: [
'element-ui/lib/theme-chalk/index.css'
],
/*
** Plugins to load before mounting the App
** https://nuxtjs.org/guide/plugins
*/
plugins: [
{src: '~/plugins/avataaars/generator/generateAvatar'},
2020-07-31 16:17:12 +08:00
{src: '~/plugins/extend'},
{src: '~/plugins/axios'},
{src: '~/plugins/element-ui'},
{src: '~/plugins/vditor', ssr: false}
2020-06-19 17:10:44 +08:00
],
/*
** Nuxt.js dev-modules
*/
2020-06-30 17:50:32 +08:00
buildModules: [],
2020-06-19 17:10:44 +08:00
/*
** Nuxt.js modules
*/
modules: [
2020-08-10 00:44:27 +08:00
'~/io',
2020-07-31 16:17:12 +08:00
'@nuxtjs/axios',
'@nuxtjs/proxy',
2020-07-03 11:04:25 +08:00
'js-cookie',
'cookieparser'
2020-06-19 17:10:44 +08:00
],
2020-07-31 16:17:12 +08:00
axios: {
proxy: true // 开启proxy
},
proxy: [ //proxy配置
['/api', {
2020-07-31 17:40:17 +08:00
target: apiConfig.BASE, //api请求路径
2020-08-02 00:25:44 +08:00
pathRewrite: {'^/api': isDevMode ? '/api/v1' : '/api'} //重定向请求路径防止路由、api路径的冲突
2020-07-31 16:17:12 +08:00
}]
],
2020-06-19 17:10:44 +08:00
/*
** Build configuration
** See https://nuxtjs.org/api/configuration-build/
*/
build: {
transpile: [/^element-ui/],
optimization: {
splitChunks: {
minSize: 10000,
maxSize: 250000
}
},
extend(config, ctx) {
config.plugins.unshift(new LodashModuleReplacementPlugin())
// rules[2].use[0] is babel-loader
2020-10-18 18:57:17 +08:00
config.module.rules.push({ test: /\.txt$/, use: 'raw-loader' })
config.module.rules[2].use[0].options.plugins = ['lodash']
}
2020-06-19 17:10:44 +08:00
}
}