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 { ssr: false, 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/", }, }); }, }, };