import redirectSSL from 'redirect-ssl' import serveStatic from 'serve-static' import {resolve} from "path"; const baseUrl = process.env.BASE_URL || 'https://api.lightlimx.live/api' export default { loading: '~/components/Loading/index.vue', serverMiddleware: [ // redirectSSL.create({ // enabled: process.env.NODE_ENV === 'production' // }), { path: '/static', handler: serveStatic(__dirname + '/static') } ], telemetry:false, publicRuntimeConfig: { baseURL: baseUrl, axios: { baseURL: baseUrl } }, env: { baseUrl: process.env.BASE_URL || 'http://localhost:3000', apiUrl: '/api' }, alias: { '@': resolve(__dirname), '~': resolve(__dirname), style: resolve(__dirname, './assets/style'), images: resolve(__dirname, './assets/images'), data: resolve(__dirname, './assets/data') }, // Global page headers: https://go.nuxtjs.dev/config-head head: { title: 'LightLimX', htmlAttrs: { lang: 'en', }, bodyAttrs: { class: 'h5-scroll-bar' }, meta: [ { charset: 'utf-8' }, //width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no { name: 'viewport', content: 'width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,minimal-ui,viewport-fit=cover' }, { hid: 'description', name: 'description', content: '' }, { name: 'format-detection', content: 'telephone=no' } ], link: [ { rel: 'icon', type: 'image/x-icon', href: '/favicon.png' } ] }, // Global CSS: https://go.nuxtjs.dev/config-css css: [ '~/assets/style/reset.less', '~/assets/style/animate.css', 'vant/lib/index.css' ], // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins plugins: [ { src: '~/plugins/remJs.js', mode: 'client' }, '@/plugins/vant', '~/plugins/axios.js', '~/plugins/vueTooltip.js', // { src: '~/plugins/vueAnimate.js', mode: 'client' }, { src: '~/plugins/vueClipboard.js', mode: 'client' }, { src: '~/plugins/lottieWeb.js', mode: 'client' }, { src: '~/plugins/svgIcon.js', mode: 'client' }, { src: '~/plugins/wow.js', mode: 'client' }, { src: '~/plugins/element.js', mode: 'client' }, ], router: { // base: '/assets/', middleware: ['authenticated'] }, // Auto import components: https://go.nuxtjs.dev/config-components components: true, // Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modules buildModules: [ ], // Modules: https://go.nuxtjs.dev/config-modules modules: [ ['nuxt-svg-sprite-loader', { symbolId: 'icon-[name]' }], '@nuxtjs/axios' ], // Build Configuration: https://go.nuxtjs.dev/config-build build: { transpile: ['vue-tooltip'], extractCSS: { // allChunks: true, filename: '[name].css', chunkFilename: '[id].css', ignoreOrder: true }, babel: { plugins: [ [ 'component', { 'libraryName': 'element-ui', // 'style': false // 不引入对应的css文件 'styleLibraryName': 'theme-chalk' } ] ] }, extend (config, { isDev, isClient }) { if (isClient) { // 排除 nuxt 原配置的影响,Nuxt 默认有vue-loader,会处理svg,img等 // 找到匹配.svg的规则,然后将存放svg文件的目录排除 const svgRule = config.module.rules.find(rule => rule.test.test('.svg')) svgRule.exclude = [resolve('assets/svg')] // 添加loader规则 } config.module.rules.push({ test: /\.(mpg|ts|pm4)$/i, loader: 'url-loader', options: { outputPath: '/static/video/', publicPath: '/static/video/' } }) } } }