const TerserPlugin = require('terser-webpack-plugin') const config = require('config') const fs = require('fs') const path = require('path') export default { ssr: false, target: 'static', env: { config, }, publicRuntimeConfig: { ...config, }, server: { ...config.get('server'), }, router: { base: config.get('baseUrl'), }, // Global page headers: https://go.nuxtjs.dev/config-head head: { title: '', htmlAttrs: { lang: 'zh-CN', }, meta: [ { charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, { hid: 'description', name: 'description', content: '' }, { name: 'format-detection', content: 'telephone=no' }, ], }, loadingIndicator: { name: 'cube-grid', color: '#308de9', background: 'white', }, // Global CSS: https://go.nuxtjs.dev/config-css css: [ '@/assets/element-variables.scss', '@/assets/extend-variables.scss', 'font-awesome/css/font-awesome.min.css', '@/assets/transition.scss', '@/assets/main.scss', ], // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins plugins: ['@/plugins/element-ui', '@/plugins/el-business', '@/services'], // 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/eslint '@nuxtjs/eslint-module', '@nuxtjs/style-resources', ], // Modules: https://go.nuxtjs.dev/config-modules modules: [ [ '@nuxtjs/i18n', { locales: [ { code: 'zh-CN', file: 'zh-CN.js', }, { code: 'en', file: 'en.js', }, ], langDir: 'lang/', defaultLocale: 'zh-CN', vueI18n: { fallbackLocale: 'zh-CN', messages: {}, }, }, ], [ 'el-business-cookie', { prefix: 'flower_op_', }, ], [ 'el-business-http', { httpBaseUri: config.get('httpBaseUri'), refreshTokenInterfaceUri: 'flower/api/refresh-token', timeout: 1000 * 60 * 5, }, ], ], styleResources: { scss: './assets/variable.scss', }, // Build Configuration: https://go.nuxtjs.dev/config-build build: { transpile: [/^element-ui/], babel: { compact: false, }, optimization: { minimize: true, minimizer: [ new TerserPlugin({ terserOptions: { compress: { drop_console: false, drop_debugger: true, pure_funcs: ['console.log'], }, }, }), ], splitChunks: { chunks: 'all', automaticNameDelimiter: '.', name: undefined, cacheGroups: {}, }, }, postcss: { plugins: { 'postcss-import': {}, 'postcss-url': {}, 'postcss-preset-env': {}, tailwindcss: {}, cssnano: { preset: 'default' }, }, preset: { autoprefixer: {}, }, }, extend(config) { config.module.rules.push({ test: /\.mjs$/, include: /node_modules/, type: 'javascript/auto', }) }, }, }