2022-12-08 19:50:44 +09:00
|
|
|
import { fileURLToPath } from 'node:url'
|
2022-11-27 15:54:56 +09:00
|
|
|
import Inspect from 'vite-plugin-inspect'
|
2022-12-12 08:18:09 +09:00
|
|
|
import { isCI } from 'std-env'
|
2022-12-07 06:04:38 +09:00
|
|
|
import { i18n } from './config/i18n'
|
2022-12-02 21:54:09 +09:00
|
|
|
|
2022-12-08 19:50:44 +09:00
|
|
|
const isPreview = process.env.PULL_REQUEST === 'true'
|
|
|
|
|
2022-11-13 14:34:43 +09:00
|
|
|
export default defineNuxtConfig({
|
|
|
|
modules: [
|
|
|
|
'@vueuse/nuxt',
|
|
|
|
'@unocss/nuxt',
|
|
|
|
'@pinia/nuxt',
|
2022-11-23 17:07:28 +09:00
|
|
|
'@vue-macros/nuxt',
|
2022-11-28 19:24:05 +09:00
|
|
|
'@nuxtjs/i18n',
|
2022-11-25 23:42:26 +09:00
|
|
|
'~/modules/purge-comments',
|
2022-11-26 01:08:30 +09:00
|
|
|
'~/modules/setup-components',
|
2022-11-13 14:34:43 +09:00
|
|
|
],
|
|
|
|
experimental: {
|
|
|
|
reactivityTransform: true,
|
|
|
|
inlineSSRStyles: false,
|
|
|
|
},
|
|
|
|
css: [
|
|
|
|
'@unocss/reset/tailwind.css',
|
2022-11-24 22:34:35 +09:00
|
|
|
'floating-vue/dist/style.css',
|
2022-11-14 01:05:32 +09:00
|
|
|
'~/styles/vars.css',
|
2022-11-16 01:39:25 +09:00
|
|
|
'~/styles/global.css',
|
2022-11-25 22:21:02 +09:00
|
|
|
'~/styles/tiptap.css',
|
2022-11-24 22:34:35 +09:00
|
|
|
'~/styles/dropdown.css',
|
2022-11-13 14:34:43 +09:00
|
|
|
],
|
2022-11-14 12:45:20 +09:00
|
|
|
alias: {
|
|
|
|
querystring: 'rollup-plugin-node-polyfills/polyfills/qs',
|
|
|
|
},
|
2022-11-16 02:14:10 +09:00
|
|
|
vite: {
|
2022-12-13 05:16:45 +09:00
|
|
|
// 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-16 02:14:10 +09:00
|
|
|
define: {
|
2022-11-27 17:54:00 +09:00
|
|
|
'import.meta.env.__BUILD_TIME__': JSON.stringify(new Date().toISOString()),
|
2022-12-05 03:18:39 +09:00
|
|
|
'import.meta.env.__BUILD_COMMIT__': JSON.stringify(process.env.COMMIT_REF || ''),
|
2022-11-24 12:42:03 +09:00
|
|
|
'process.env.VSCODE_TEXTMATE_DEBUG': 'false',
|
2022-12-12 08:18:09 +09:00
|
|
|
'process.mock': ((!isCI || isPreview) && process.env.MOCK_USER) || 'false',
|
2022-11-16 02:14:10 +09:00
|
|
|
},
|
2022-11-23 08:27:01 +09:00
|
|
|
build: {
|
2022-12-13 05:16:45 +09:00
|
|
|
target: process.env.TAURI_PLATFORM ? ['es2021', 'chrome100', 'safari13'] : 'esnext',
|
2022-11-23 08:27:01 +09:00
|
|
|
},
|
2022-11-27 15:54:56 +09:00
|
|
|
plugins: [
|
|
|
|
Inspect(),
|
|
|
|
],
|
2022-11-16 02:14:10 +09:00
|
|
|
},
|
2022-11-14 12:33:09 +09:00
|
|
|
postcss: {
|
|
|
|
plugins: {
|
|
|
|
'postcss-nested': {},
|
|
|
|
},
|
|
|
|
},
|
2022-11-16 00:54:58 +09:00
|
|
|
runtimeConfig: {
|
2022-12-08 22:04:58 +09:00
|
|
|
deployUrl: !isCI
|
2022-11-29 06:43:24 +09:00
|
|
|
? 'http://localhost:5314'
|
2022-12-08 19:50:44 +09:00
|
|
|
: isPreview
|
2022-11-29 06:43:24 +09:00
|
|
|
? process.env.DEPLOY_PRIME_URL
|
|
|
|
: 'https://elk.zone',
|
2022-11-24 08:12:25 +09:00
|
|
|
cloudflare: {
|
|
|
|
accountId: '',
|
|
|
|
namespaceId: '',
|
|
|
|
apiToken: '',
|
|
|
|
},
|
2022-11-25 09:14:16 +09:00
|
|
|
public: {
|
2022-12-08 19:50:44 +09:00
|
|
|
env: isCI ? isPreview ? 'staging' : 'production' : 'local',
|
2022-11-25 09:14:16 +09:00
|
|
|
translateApi: '',
|
2022-12-01 06:28:55 +09: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,
|
2022-11-25 09:14:16 +09:00
|
|
|
},
|
2022-12-01 06:17:20 +09:00
|
|
|
storage: {
|
2022-12-07 06:09:47 +09:00
|
|
|
driver: isCI ? 'cloudflare' : 'fs',
|
2022-12-01 06:28:55 +09:00
|
|
|
fsBase: 'node_modules/.cache/servers',
|
2022-12-01 06:17:20 +09:00
|
|
|
},
|
2022-11-16 00:54:58 +09:00
|
|
|
},
|
2022-11-28 18:01:14 +09:00
|
|
|
nitro: {
|
2022-12-08 19:50:44 +09:00
|
|
|
publicAssets: [
|
2022-12-08 22:24:36 +09:00
|
|
|
...(!isCI || isPreview ? [{ dir: fileURLToPath(new URL('./public-dev', import.meta.url)) }] : []),
|
2022-12-08 19:50:44 +09:00
|
|
|
],
|
2022-11-28 18:01:14 +09:00
|
|
|
prerender: {
|
|
|
|
crawlLinks: false,
|
2022-11-29 01:54:42 +09:00
|
|
|
routes: ['/', '/200.html'],
|
2022-11-28 18:01:14 +09:00
|
|
|
},
|
|
|
|
},
|
2022-11-28 02:34:45 +09:00
|
|
|
app: {
|
|
|
|
keepalive: true,
|
2022-11-30 01:27:35 +09:00
|
|
|
head: {
|
|
|
|
// Prevent arbitrary zooming on mobile devices
|
2022-12-13 17:41:24 +09:00
|
|
|
viewport: 'width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0,viewport-fit=cover',
|
2022-12-08 19:50:44 +09:00
|
|
|
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' },
|
|
|
|
],
|
2022-11-30 01:27:35 +09:00
|
|
|
},
|
2022-11-28 02:34:45 +09:00
|
|
|
},
|
2022-12-02 21:54:09 +09:00
|
|
|
i18n,
|
2022-11-13 14:34:43 +09:00
|
|
|
})
|
2022-11-29 15:39:49 +09:00
|
|
|
|
|
|
|
declare global {
|
|
|
|
namespace NodeJS {
|
|
|
|
interface Process {
|
|
|
|
mock?: Record<string, any>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|