|
|
import colors from "vuetify/es5/util/colors";
export default { // Disable server-side rendering: https://go.nuxtjs.dev/ssr-mode
loading: false, head: { titleTemplate: "%s│ShowEasy-we make your show easy!", title: "showeasy-v2", htmlAttrs: { lang: "zh-TW", }, meta: [ { charset: "utf-8", }, { name: "viewport", content: "width=device-width, initial-scale=1", }, { hid: "description", name: "description", content: "ShowEasy致力發展一個讓人簡單搜尋、比價、訂購的會展整合平台,讓參展這件事變得不再困難。", }, { hid: "keywords", name: "keywords", content: "ShowEasy,會展,展覽,會展運輸,展覽品運輸,展覽品出口,世貿展覽館", }, { name: "format-detection", content: "telephone=no", }, ], link: [ { rel: "icon", type: "image/x-icon", href: "/favicon.ico", }, { rel: "preconnect", href: "https://fonts.googleapis.com", }, { rel: "preconnect", href: "https://fonts.gstatic.com", }, { rel: "stylesheet", href: "https://fonts.googleapis.com/css2?family=DM+Sans&display=swap", }, { rel: "stylesheet", href: "https://fonts.googleapis.com/css2?family=Damion&display=swap", }, { rel: "stylesheet", type: "text/css", href: "https://cdnjs.cloudflare.com/ajax/libs/Swiper/8.1.4/swiper-bundle.css", }, ], },
// Global CSS: https://go.nuxtjs.dev/config-css
css: [ 'element-ui/lib/theme-chalk/index.css', // '@/assets/css/tailwind.css',
"@/assets/css/showeasy-tailwind.css", "@/assets/scss/all.scss", "@/assets/scss/editor.scss", "swiper/swiper-bundle.css", ], render: { resourceHints: true, //啓用預加載
asyncScripts: true },
// Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
plugins: [ { src: '@/plugins/element-ui', ssr: true }, { src: "~/plugins/axios", ssr: true }, { src: "~/plugins/vueLazyload.js", ssr: false }, { src: "~/plugins/vue-awesome-swiper", ssr: false }, { src: "~/plugins/vue-notification.js", ssr: false }, { src: "~/plugins/vue-unicons", mode: "client" }, { src: "~/plugins/vue-phone-number-input", mode: "client",ssr: false }, { src: "~/plugins/scrollActive", ssr: false }, { src: "~/plugins/vue-js-modal" }, { src: "~/plugins/vue-time-picker", ssr: false }, { src: "~/plugins/ant-design-vue"}, { src: "~/plugins/vue-slider-component", ssr: false }, { src: "~/plugins/vueCompositionAPI" }, { src: "~/plugins/vue-scroll-to" }, { src: "~/plugins/photoswipe", mode: "client", ssr: false }, { src: "~/plugins/plugins-print", mode: "client", ssr: false }, // {src: "~/plugins/storeCache", ssr: false },
// { src: '@/plugins/router', ssr: false} // 先僅用路由前獲取OrgID
],
// Auto import components: https://go.nuxtjs.dev/config-components
components: true,
// Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modules
buildModules: [ // https://go.nuxtjs.dev/vuetify
"@nuxtjs/vuetify", // '@nuxtjs/tailwindcss'
'@nuxt/postcss8', "@nuxtjs/dotenv", ],
// Modules: https://go.nuxtjs.dev/config-modules
modules: [ // https://go.nuxtjs.dev/axios
'@nuxtjs/axios', "@nuxtjs/i18n", "@nuxtjs/auth-next", "@nuxtjs/robots", "nuxt-route-meta", "cookie-universal-nuxt", ["vue-scrollto/nuxt", { duration: 300 }], ],
// Axios module configuration: https://go.nuxtjs.dev/config-axios
axios: { // Workaround to avoid enforcing hard-coded localhost:3000: https://github.com/nuxt-community/axios-module/issues/308
// baseURL: 'http://beta.ptcgvip.com',
proxy: true, // prefix: '/api'
}, proxy: { '/trending': { // target: 'http://www.origtek.com:3002',// 服務地址
target: 'http://localhost:3466',// 服務地址
pathRewrite: { '^/trending': '/' }, changeOrigin: true } }, i18n: { vueI18n: { silentTranslationWarn: true, silentFallbackWarn: true, }, // locales: ["en", "zh-tw"],
defaultLocale: process.env.VUE_APP_I18N_LOCALE || "zh-tw", lazy: true, langDir: "~/locales/", locales: [ // {
// code: "en",
// iso: "en-EN",
// file: "en.json",
// langQuery: "en-US",
// title: "English",
// text: "English (Global)",
// },
{ code: "zh-tw", iso: "zh-TW", file: "zh-tw.json", langQuery: "zh-TW", title: "繁體中文", text: "繁體中文(台灣)", }, ], }, // 在nuxt.config.js中配置auth
auth: { strategies: { local: { token: { required: false, }, user: { property: "data", }, endpoints: { login: { // url: '/member/users/login',
url: "/trending/api/system/Login", methods: "post", }, logout: false, user: false, }, }, // 需要使用@nuxtjs/auth-next
facebook: { endpoints: { userInfo: "https://graph.facebook.com/v6.0/me?fields=id,first_name,last_name,email,picture{url}", }, clientId: "1080300752875237", scope: ["public_profile", "email"], }, google: { clientId: "707328878971-7prt1v233u2e78e7ugp4sqlso5c2bpk5.apps.googleusercontent.com", responseType: "token id_token", codeChallengeMethod: "", }, }, redirect: { login: "/user", callback: "/user/socialCallback", home: false, logout: "/", }, plugins: ["@/plugins/auth-lang-redirect.js"], localStorage: false, watchLoggedIn: false, }, router: { middleware: ['auth'], }, // Vuetify module configuration: https://go.nuxtjs.dev/config-vuetify
vuetify: { customVariables: ["~/assets/scss/_variables.scss"], treeShake: true, theme: { dark: false, themes: { light: { primary: { base: "#EE9546", lighten1: "#F5CDA8", lighten2: "#F7EDE4", }, warning: { base: "#EF5A5A", lighten1: "#E99E9E", }, complementary: { base: "#7997FF", lighten1: "#F4B927", }, neutrals: { base: "#FEFEFE", darken1: "#F8F8F8", darken2: "#E5E5E5", darken3: "#9C9C9C", darken4: "#504F4F", darken5: "#232323", }, }, dark: { primary: colors.blue.darken2, accent: colors.grey.darken3, secondary: colors.amber.darken3, info: colors.teal.lighten1, warning: colors.amber.base, error: colors.deepOrange.accent4, success: colors.green.accent3, }, }, }, breakpoint: { thresholds: { xs: 390, sm: 540, md: 768, lg: 1280, xl: 1366, }, }, }, // 允許爬蟲抓取
robots: { UserAgent: "*", Allow: "*", }, googleFonts: {}, // Build Configuration: https://go.nuxtjs.dev/config-build
build: { vendor: ['element-ui'], postcss: { plugins: { tailwindcss: {}, autoprefixer: {}, }, }, terser: { // https://github.com/terser/terser#compress-options
terserOptions: { compress: { drop_console: true // 生產環境中禁用console.log
} } }, extend (config, { isDev, isClient }) { config.node = { fs: 'empty' } }, extractCSS: process.env.ENV === 'production', //html minify
html:{ minify:{ collapseBooleanAttributes: true, decodeEntities: true, minifyCSS: true, minifyJS: true, processConditionalComments: true, removeEmptyAttributes: true, removeRedundantAttributes: true, trimCustomFragments: true, useShortDoctype: true, minifyURLs: true, removeComments: true, removeEmptyElements: true } }, } }
|