2022-12-28 15:57:06 +01:00
|
|
|
import { createResolver } from '@nuxt/kit'
|
2022-11-27 07:54:56 +01:00
|
|
|
import Inspect from 'vite-plugin-inspect'
|
2022-12-18 01:15:19 +01:00
|
|
|
import { isCI, isDevelopment } from 'std-env'
|
2022-12-06 22:04:38 +01:00
|
|
|
import { i18n } from './config/i18n'
|
2022-12-18 00:29:16 +01:00
|
|
|
import { pwa } from './config/pwa'
|
2023-01-04 14:26:30 +01:00
|
|
|
import { isPreview } from './config/env'
|
2022-12-02 13:54:09 +01:00
|
|
|
|
2022-12-28 15:57:06 +01:00
|
|
|
const { resolve } = createResolver(import.meta.url)
|
2022-12-08 11:50:44 +01:00
|
|
|
|
2022-11-13 06:34:43 +01:00
|
|
|
export default defineNuxtConfig({
|
2022-12-18 00:29:16 +01:00
|
|
|
typescript: {
|
|
|
|
tsConfig: {
|
|
|
|
exclude: ['../service-worker'],
|
|
|
|
},
|
|
|
|
},
|
2022-11-13 06:34:43 +01:00
|
|
|
modules: [
|
|
|
|
'@vueuse/nuxt',
|
|
|
|
'@unocss/nuxt',
|
|
|
|
'@pinia/nuxt',
|
2022-11-23 09:07:28 +01:00
|
|
|
'@vue-macros/nuxt',
|
2022-11-28 11:24:05 +01:00
|
|
|
'@nuxtjs/i18n',
|
2022-12-29 13:26:08 +01:00
|
|
|
'@nuxtjs/color-mode',
|
2022-11-25 15:42:26 +01:00
|
|
|
'~/modules/purge-comments',
|
2022-11-25 17:08:30 +01:00
|
|
|
'~/modules/setup-components',
|
2022-12-26 20:33:19 +01:00
|
|
|
'~/modules/build-info',
|
2022-12-18 00:29:16 +01:00
|
|
|
'~/modules/pwa/index', // change to '@vite-pwa/nuxt' once released and remove pwa module
|
2022-12-21 00:56:57 +01:00
|
|
|
'~/modules/tauri/index',
|
2022-11-13 06:34:43 +01:00
|
|
|
],
|
|
|
|
experimental: {
|
2022-12-21 00:56:57 +01:00
|
|
|
payloadExtraction: false,
|
2022-11-13 06:34:43 +01:00
|
|
|
reactivityTransform: true,
|
|
|
|
inlineSSRStyles: false,
|
|
|
|
},
|
|
|
|
css: [
|
|
|
|
'@unocss/reset/tailwind.css',
|
2022-11-24 14:34:35 +01:00
|
|
|
'floating-vue/dist/style.css',
|
2022-11-13 17:05:32 +01:00
|
|
|
'~/styles/vars.css',
|
2022-11-15 17:39:25 +01:00
|
|
|
'~/styles/global.css',
|
2022-11-25 14:21:02 +01:00
|
|
|
'~/styles/tiptap.css',
|
2022-11-24 14:34:35 +01:00
|
|
|
'~/styles/dropdown.css',
|
2022-11-13 06:34:43 +01:00
|
|
|
],
|
2022-11-14 04:45:20 +01:00
|
|
|
alias: {
|
2022-12-21 02:06:39 +01:00
|
|
|
'querystring': 'rollup-plugin-node-polyfills/polyfills/qs',
|
|
|
|
'masto/fetch': 'masto/fetch',
|
|
|
|
'masto': 'masto/fetch',
|
2022-12-22 15:22:56 +01:00
|
|
|
'change-case': 'scule',
|
|
|
|
'semver': 'unenv/runtime/mock/empty',
|
2022-11-14 04:45:20 +01:00
|
|
|
},
|
2022-12-28 15:57:06 +01:00
|
|
|
imports: {
|
|
|
|
dirs: [
|
|
|
|
'./composables/push-notifications',
|
|
|
|
'./composables/tiptap',
|
|
|
|
],
|
|
|
|
},
|
2022-11-15 18:14:10 +01:00
|
|
|
vite: {
|
|
|
|
define: {
|
2022-11-24 04:42:03 +01:00
|
|
|
'process.env.VSCODE_TEXTMATE_DEBUG': 'false',
|
2022-12-12 00:18:09 +01:00
|
|
|
'process.mock': ((!isCI || isPreview) && process.env.MOCK_USER) || 'false',
|
2022-11-15 18:14:10 +01:00
|
|
|
},
|
2022-11-23 00:27:01 +01:00
|
|
|
build: {
|
2022-12-21 00:56:57 +01:00
|
|
|
target: 'esnext',
|
2022-11-23 00:27:01 +01:00
|
|
|
},
|
2022-11-27 07:54:56 +01:00
|
|
|
plugins: [
|
|
|
|
Inspect(),
|
|
|
|
],
|
2022-11-15 18:14:10 +01:00
|
|
|
},
|
2022-11-14 04:33:09 +01:00
|
|
|
postcss: {
|
|
|
|
plugins: {
|
|
|
|
'postcss-nested': {},
|
|
|
|
},
|
|
|
|
},
|
2022-11-15 16:54:58 +01:00
|
|
|
runtimeConfig: {
|
2022-12-08 14:04:58 +01:00
|
|
|
deployUrl: !isCI
|
2022-11-28 22:43:24 +01:00
|
|
|
? 'http://localhost:5314'
|
2022-12-08 11:50:44 +01:00
|
|
|
: isPreview
|
2022-11-28 22:43:24 +01:00
|
|
|
? process.env.DEPLOY_PRIME_URL
|
|
|
|
: 'https://elk.zone',
|
2022-11-24 00:12:25 +01:00
|
|
|
cloudflare: {
|
|
|
|
accountId: '',
|
|
|
|
namespaceId: '',
|
|
|
|
apiToken: '',
|
|
|
|
},
|
2022-12-20 23:39:04 +01:00
|
|
|
discord: {
|
|
|
|
inviteUrl: 'https://chat.elk.zone',
|
|
|
|
},
|
|
|
|
github: {
|
|
|
|
// oauth flow
|
|
|
|
clientId: '',
|
|
|
|
clientSecret: '',
|
|
|
|
inviteToken: '',
|
|
|
|
},
|
2022-11-25 01:14:16 +01:00
|
|
|
public: {
|
2023-01-04 14:26:30 +01:00
|
|
|
env: '', // set in build-info module
|
2022-12-18 01:15:19 +01:00
|
|
|
pwaEnabled: !isDevelopment || process.env.VITE_DEV_PWA === 'true',
|
2022-11-25 01:14:16 +01:00
|
|
|
translateApi: '',
|
|
|
|
},
|
2022-11-30 22:17:20 +01:00
|
|
|
storage: {
|
2022-12-06 22:09:47 +01:00
|
|
|
driver: isCI ? 'cloudflare' : 'fs',
|
2022-11-30 22:28:55 +01:00
|
|
|
fsBase: 'node_modules/.cache/servers',
|
2022-11-30 22:17:20 +01:00
|
|
|
},
|
2022-11-15 16:54:58 +01:00
|
|
|
},
|
2022-12-18 00:29:16 +01:00
|
|
|
routeRules: {
|
2022-12-28 16:17:37 +01:00
|
|
|
'/api/list-servers': { swr: true },
|
2022-12-18 00:29:16 +01:00
|
|
|
'/manifest.webmanifest': {
|
|
|
|
headers: {
|
|
|
|
'Content-Type': 'application/manifest+json',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2022-11-28 10:01:14 +01:00
|
|
|
nitro: {
|
2022-12-08 11:50:44 +01:00
|
|
|
publicAssets: [
|
2022-12-28 15:57:06 +01:00
|
|
|
...(!isCI || isPreview ? [{ dir: resolve('./public-dev') }] : []),
|
2022-12-08 11:50:44 +01:00
|
|
|
],
|
2022-11-28 10:01:14 +01:00
|
|
|
prerender: {
|
|
|
|
crawlLinks: false,
|
2022-11-28 17:54:42 +01:00
|
|
|
routes: ['/', '/200.html'],
|
2022-11-28 10:01:14 +01:00
|
|
|
},
|
|
|
|
},
|
2022-11-27 18:34:45 +01:00
|
|
|
app: {
|
|
|
|
keepalive: true,
|
2022-11-29 17:27:35 +01:00
|
|
|
head: {
|
|
|
|
// Prevent arbitrary zooming on mobile devices
|
2022-12-13 09:41:24 +01:00
|
|
|
viewport: 'width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0,viewport-fit=cover',
|
2022-12-08 11:50:44 +01:00
|
|
|
bodyAttrs: {
|
|
|
|
class: 'overflow-x-hidden',
|
|
|
|
},
|
|
|
|
link: [
|
2022-12-19 23:37:23 +01:00
|
|
|
{ rel: 'icon', href: '/favicon.ico', sizes: 'any' },
|
2023-01-03 01:14:53 +01:00
|
|
|
{ rel: 'icon', type: 'image/svg+xml', href: '/logo.svg' },
|
2022-12-19 23:37:23 +01:00
|
|
|
{ rel: 'apple-touch-icon', href: '/apple-touch-icon.png' },
|
2022-12-08 11:50:44 +01:00
|
|
|
],
|
2023-01-01 23:03:25 +01:00
|
|
|
meta: [
|
|
|
|
{ name: 'apple-mobile-web-app-status-bar-style', content: 'black-translucent' },
|
|
|
|
],
|
2022-11-29 17:27:35 +01:00
|
|
|
},
|
2022-11-27 18:34:45 +01:00
|
|
|
},
|
2022-12-29 13:26:08 +01:00
|
|
|
colorMode: { classSuffix: '' },
|
2022-12-02 13:54:09 +01:00
|
|
|
i18n,
|
2022-12-18 00:29:16 +01:00
|
|
|
pwa,
|
2022-11-13 06:34:43 +01:00
|
|
|
})
|
2022-11-29 07:39:49 +01:00
|
|
|
|
|
|
|
declare global {
|
|
|
|
namespace NodeJS {
|
|
|
|
interface Process {
|
|
|
|
mock?: Record<string, any>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|