import { NuxtConfig } from '@nuxt/types' import { SERVER_PORT, runServer } from './server/cli' import { getTheme } from './server/theme' const config = async (): Promise => { await runServer() const theme = getTheme() return { target: 'static', // Global page headers (https://go.nuxtjs.dev/config-head) head: { title: theme.title, meta: [ { charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, { hid: 'description', name: 'description', content: theme.description || '', }, ], link: [ { rel: 'icon', type: 'image/x-icon', href: '/media/favicon.ico' }, { rel: 'stylesheet', href: theme.awsm ? `https://unpkg.com/awsm.css/dist/awsm_theme_${theme.awsm}.min.css` : 'https://unpkg.com/awsm.css/dist/awsm.min.css', }, ], script: [ ...(theme.analytics?.plausible ? [ { src: 'https://plausible.io/js/plausible.js', async: true, defer: true, 'data-domain': theme.analytics?.plausible, }, ] : []), { src: 'https://unpkg.com/@webcomponents/webcomponentsjs/webcomponents-loader.js', defer: true, }, { type: 'module', src: '/webcomponents.js', }, ], }, // Global CSS (https://go.nuxtjs.dev/config-css) css: [], // Plugins to run before rendering page (https://go.nuxtjs.dev/config-plugins) plugins: ['~/plugins/axios-fix.ts', '~/plugins/format.ts'], // 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/typescript '@nuxt/typescript-build', ], // Modules (https://go.nuxtjs.dev/config-modules) modules: ['@nuxtjs/axios'], axios: { proxy: true, }, proxy: { '/.netlify/functions': 'http://localhost:9000', '/api': `http://localhost:${SERVER_PORT}`, }, // Build Configuration (https://go.nuxtjs.dev/config-build) build: {}, env: { THEME: JSON.stringify(theme), SERVER_PORT: SERVER_PORT.toString(), }, hooks: { generate: { done() { /** * Do not kill */ // try { // execSync( // `lsof -i tcp:${SERVER_PORT} | grep LISTEN | awk '{print $2}' | xargs kill -9` // ) // } catch (_) {} process.exit(0) }, }, }, } } export default config