elk/nuxt.config.ts

188 lines
4.2 KiB
TypeScript
Raw Normal View History

2022-11-27 09:54:56 +03:00
import Inspect from 'vite-plugin-inspect'
import { isCI, isDevelopment } from 'std-env'
2022-11-13 08:34:43 +03:00
export default defineNuxtConfig({
2022-11-23 02:08:36 +03:00
ssr: false,
2022-11-13 08:34:43 +03:00
modules: [
'@vueuse/nuxt',
'@unocss/nuxt',
'@pinia/nuxt',
'@vue-macros/nuxt',
2022-11-28 13:24:05 +03:00
'@nuxtjs/i18n',
'~/modules/purge-comments',
'~/modules/setup-components',
2022-11-13 08:34:43 +03:00
],
experimental: {
reactivityTransform: true,
inlineSSRStyles: false,
},
css: [
'@unocss/reset/tailwind.css',
2022-11-24 16:34:35 +03:00
'floating-vue/dist/style.css',
2022-11-13 19:05:32 +03:00
'~/styles/vars.css',
2022-11-15 19:39:25 +03:00
'~/styles/global.css',
'~/styles/tiptap.css',
2022-11-24 16:34:35 +03:00
'~/styles/dropdown.css',
2022-11-13 08:34:43 +03:00
],
2022-11-14 06:45:20 +03:00
alias: {
querystring: 'rollup-plugin-node-polyfills/polyfills/qs',
},
2022-11-15 20:14:10 +03:00
vite: {
define: {
2022-11-27 11:54:00 +03:00
'import.meta.env.__BUILD_TIME__': JSON.stringify(new Date().toISOString()),
2022-11-24 06:42:03 +03:00
'process.env.VSCODE_TEXTMATE_DEBUG': 'false',
'process.mock': ((isDevelopment || (isCI && process.env.PULL_REQUEST === 'true')) && process.env.MOCK_USER) || 'false',
2022-11-15 20:14:10 +03:00
},
2022-11-23 02:27:01 +03:00
build: {
target: 'esnext',
},
2022-11-27 09:54:56 +03:00
plugins: [
Inspect(),
],
2022-11-15 20:14:10 +03:00
},
2022-11-14 06:33:09 +03:00
postcss: {
plugins: {
'postcss-nested': {},
},
},
2022-11-15 18:54:58 +03:00
runtimeConfig: {
2022-11-27 21:39:40 +03:00
env: isCI ? 'deployed' : 'local',
deployUrl: !isCI
? 'http://localhost:5314'
: process.env.PULL_REQUEST === 'true'
? process.env.DEPLOY_PRIME_URL
: 'https://elk.zone',
cloudflare: {
accountId: '',
namespaceId: '',
apiToken: '',
},
public: {
translateApi: '',
2022-12-01 00:28:55 +03: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: {
2022-12-01 00:28:55 +03:00
driver: 'cloudflare',
fsBase: 'node_modules/.cache/servers',
},
2022-11-15 18:54:58 +03:00
},
nitro: {
prerender: {
crawlLinks: false,
2022-11-28 19:54:42 +03:00
routes: ['/', '/200.html'],
},
},
app: {
keepalive: true,
head: {
// Prevent arbitrary zooming on mobile devices
viewport: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no',
},
},
2022-11-28 13:24:05 +03:00
i18n: {
locales: [
{
code: 'en-US',
file: 'en-US.json',
name: 'English',
},
2022-11-28 19:41:58 +03:00
{
code: 'de-DE',
file: 'de-DE.json',
name: 'Deutsch',
},
2022-11-28 13:24:05 +03:00
{
code: 'zh-CN',
file: 'zh-CN.json',
name: '简体中文',
},
2022-11-29 15:51:07 +03:00
{
code: 'ja-JP',
file: 'ja-JP.json',
name: '日本語',
},
{
code: 'es-ES',
file: 'es-ES.json',
name: 'Español',
},
2022-11-28 19:55:05 +03:00
].sort((a, b) => a.code.localeCompare(b.code)),
2022-11-28 16:41:41 +03:00
strategy: 'no_prefix',
detectBrowserLanguage: false,
2022-11-28 13:24:05 +03:00
langDir: 'locales',
defaultLocale: 'en-US',
2022-11-29 10:07:42 +03:00
vueI18n: {
fallbackLocale: 'en-US',
2022-12-02 05:18:36 +03:00
datetimeFormats: {
'en-US': {
long: {
dateStyle: 'long',
timeStyle: 'medium',
/*
year: 'numeric',
month: 'short',
day: 'numeric',
weekday: 'short',
hour: 'numeric',
minute: 'numeric',
*/
},
},
'es-ES': {
long: {
dateStyle: 'long',
timeStyle: 'medium',
/*
year: 'numeric',
month: 'short',
day: 'numeric',
weekday: 'short',
hour: 'numeric',
minute: 'numeric',
hour12: false,
*/
},
},
'ja-JP': {
long: {
dateStyle: 'long',
timeStyle: 'medium',
/*
year: 'numeric',
month: 'short',
day: 'numeric',
weekday: 'short',
hour: 'numeric',
minute: 'numeric',
hour12: true,
*/
},
},
'zh-CN': {
long: {
dateStyle: 'long',
timeStyle: 'medium',
},
},
'de-DE': {
long: {
dateStyle: 'long',
timeStyle: 'medium',
},
},
},
2022-11-29 10:07:42 +03:00
},
2022-11-30 03:22:35 +03:00
lazy: true,
2022-11-28 13:24:05 +03:00
},
2022-11-13 08:34:43 +03:00
})
declare global {
namespace NodeJS {
interface Process {
mock?: Record<string, any>
}
}
}