138 lines
3.8 KiB
JavaScript
138 lines
3.8 KiB
JavaScript
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/",
|
|
},
|
|
});
|
|
},
|
|
},
|
|
};
|