elk/nuxt.config.ts

115 lines
3.1 KiB
TypeScript
Raw Normal View History

import { fileURLToPath } from 'node:url'
2022-11-27 06:54:56 +00:00
import Inspect from 'vite-plugin-inspect'
2022-12-11 23:18:09 +00:00
import { isCI } from 'std-env'
import { i18n } from './config/i18n'
const isPreview = process.env.PULL_REQUEST === 'true'
2022-11-13 05:34:43 +00:00
export default defineNuxtConfig({
modules: [
'@vueuse/nuxt',
'@unocss/nuxt',
'@pinia/nuxt',
'@vue-macros/nuxt',
2022-11-28 10:24:05 +00:00
'@nuxtjs/i18n',
'~/modules/purge-comments',
'~/modules/setup-components',
2022-11-13 05:34:43 +00:00
],
experimental: {
reactivityTransform: true,
inlineSSRStyles: false,
},
css: [
'@unocss/reset/tailwind.css',
2022-11-24 13:34:35 +00:00
'floating-vue/dist/style.css',
2022-11-13 16:05:32 +00:00
'~/styles/vars.css',
2022-11-15 16:39:25 +00:00
'~/styles/global.css',
'~/styles/tiptap.css',
2022-11-24 13:34:35 +00:00
'~/styles/dropdown.css',
2022-11-13 05:34:43 +00:00
],
2022-11-14 03:45:20 +00:00
alias: {
querystring: 'rollup-plugin-node-polyfills/polyfills/qs',
},
2022-11-15 17:14:10 +00:00
vite: {
// to make use of `TAURI_PLATFORM`, `TAURI_ARCH`, `TAURI_FAMILY`,
// `TAURI_PLATFORM_VERSION`, `TAURI_PLATFORM_TYPE` and `TAURI_DEBUG`
// env variables
envPrefix: ['VITE_', 'TAURI_'],
2022-11-15 17:14:10 +00:00
define: {
2022-11-27 08:54:00 +00:00
'import.meta.env.__BUILD_TIME__': JSON.stringify(new Date().toISOString()),
2022-12-04 18:18:39 +00:00
'import.meta.env.__BUILD_COMMIT__': JSON.stringify(process.env.COMMIT_REF || ''),
2022-11-24 03:42:03 +00:00
'process.env.VSCODE_TEXTMATE_DEBUG': 'false',
2022-12-11 23:18:09 +00:00
'process.mock': ((!isCI || isPreview) && process.env.MOCK_USER) || 'false',
2022-11-15 17:14:10 +00:00
},
2022-11-22 23:27:01 +00:00
build: {
target: process.env.TAURI_PLATFORM ? ['es2021', 'chrome100', 'safari13'] : 'esnext',
2022-11-22 23:27:01 +00:00
},
2022-11-27 06:54:56 +00:00
plugins: [
Inspect(),
],
2022-11-15 17:14:10 +00:00
},
2022-11-14 03:33:09 +00:00
postcss: {
plugins: {
'postcss-nested': {},
},
},
2022-11-15 15:54:58 +00:00
runtimeConfig: {
deployUrl: !isCI
? 'http://localhost:5314'
: isPreview
? process.env.DEPLOY_PRIME_URL
: 'https://elk.zone',
cloudflare: {
accountId: '',
namespaceId: '',
apiToken: '',
},
public: {
env: isCI ? isPreview ? 'staging' : 'production' : 'local',
translateApi: '',
2022-11-30 21:28:55 +00:00
// Masto uses Mastodon version checks to see what features are enabled.
// Mastodon alternatives like GoToSocial will always fail these checks, so
// provide a way to disable them.
disableVersionCheck: false,
},
storage: {
driver: isCI ? 'cloudflare' : 'fs',
2022-11-30 21:28:55 +00:00
fsBase: 'node_modules/.cache/servers',
},
2022-11-15 15:54:58 +00:00
},
nitro: {
publicAssets: [
2022-12-08 13:24:36 +00:00
...(!isCI || isPreview ? [{ dir: fileURLToPath(new URL('./public-dev', import.meta.url)) }] : []),
],
prerender: {
crawlLinks: false,
2022-11-28 16:54:42 +00:00
routes: ['/', '/200.html'],
},
},
app: {
keepalive: true,
head: {
// Prevent arbitrary zooming on mobile devices
viewport: 'width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0,viewport-fit=cover',
bodyAttrs: {
class: 'overflow-x-hidden',
},
link: [
{ rel: 'icon', type: 'image/png', href: '/favicon.png' },
{ rel: 'alternate icon', type: 'image/x-icon', href: '/favicon.ico' },
{ rel: 'icon', type: 'image/png', href: '/favicon-16x16.png', sizes: '16x16' },
{ rel: 'icon', type: 'image/png', href: '/favicon-32x32.png', sizes: '32x32' },
],
},
},
i18n,
2022-11-13 05:34:43 +00:00
})
declare global {
namespace NodeJS {
interface Process {
mock?: Record<string, any>
}
}
}