Files
zhdiary/packages/nuxt/nuxt.config.ts
T

108 lines
2.7 KiB
TypeScript

import { NuxtConfig } from '@nuxt/types'
import { SERVER_PORT, runServer } from './server/cli'
import { getTheme } from './server/theme'
const config = async (): Promise<NuxtConfig> => {
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