From 00b835444b5e7106fdf51654b715a5f3cdd58187 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 8 Dec 2022 11:50:44 +0100 Subject: [PATCH] fix: use nitro overlay to skip dev assets in production --- .eslintignore | 2 ++ composables/setups.ts | 10 --------- nuxt.config.ts | 21 +++++++++++++++--- .../favicon-16x16.png | Bin .../favicon-32x32.png | Bin .../favicon-dev.ico => public-dev/favicon.ico | Bin .../favicon-dev.png => public-dev/favicon.png | Bin public/logo-dev.svg => public-dev/logo.svg | 0 8 files changed, 20 insertions(+), 13 deletions(-) rename public/favicon-16x16-dev.png => public-dev/favicon-16x16.png (100%) rename public/favicon-32x32-dev.png => public-dev/favicon-32x32.png (100%) rename public/favicon-dev.ico => public-dev/favicon.ico (100%) rename public/favicon-dev.png => public-dev/favicon.png (100%) rename public/logo-dev.svg => public-dev/logo.svg (100%) diff --git a/.eslintignore b/.eslintignore index b3a52671..c685525e 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1 +1,3 @@ *.css +*.png +*.ico diff --git a/composables/setups.ts b/composables/setups.ts index 7ba28632..ce9e947c 100644 --- a/composables/setups.ts +++ b/composables/setups.ts @@ -3,7 +3,6 @@ import { APP_NAME, STORAGE_KEY_LANG } from '~/constants' export function setupPageHeader() { const isDev = process.dev const isPreview = useRuntimeConfig().public.env === 'staging' - const suffix = isDev || isPreview ? '-dev' : '' const i18n = useI18n() @@ -12,15 +11,6 @@ export function setupPageHeader() { lang: () => i18n.locale.value, }, titleTemplate: title => `${title ? `${title} | ` : ''}${APP_NAME}${isDev ? ' (dev)' : isPreview ? ' (preview)' : ''}`, - bodyAttrs: { - class: 'overflow-x-hidden', - }, - link: [ - { rel: 'icon', type: 'image/svg+xml', href: `/favicon${suffix}.svg` }, - { rel: 'alternate icon', type: 'image/x-icon', href: `/favicon${suffix}.ico` }, - { rel: 'icon', type: 'image/png', href: `/favicon-16x16${suffix}.png`, sizes: '16x16' }, - { rel: 'icon', type: 'image/png', href: `/favicon-32x32${suffix}.png`, sizes: '32x32' }, - ], }) // eslint-disable-next-line no-unused-expressions diff --git a/nuxt.config.ts b/nuxt.config.ts index 56ba97ab..f7429e9c 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,7 +1,10 @@ +import { fileURLToPath } from 'node:url' import Inspect from 'vite-plugin-inspect' import { isCI, isDevelopment } from 'std-env' import { i18n } from './config/i18n' +const isPreview = process.env.PULL_REQUEST === 'true' + export default defineNuxtConfig({ ssr: false, modules: [ @@ -48,9 +51,9 @@ export default defineNuxtConfig({ }, }, runtimeConfig: { - deployUrl: !isCI + deployUrl: isDevelopment ? 'http://localhost:5314' - : process.env.PULL_REQUEST === 'true' + : isPreview ? process.env.DEPLOY_PRIME_URL : 'https://elk.zone', cloudflare: { @@ -59,7 +62,7 @@ export default defineNuxtConfig({ apiToken: '', }, public: { - env: isCI ? process.env.PULL_REQUEST === 'true' ? 'staging' : 'production' : 'local', + env: isCI ? isPreview ? 'staging' : 'production' : 'local', translateApi: '', // Masto uses Mastodon version checks to see what features are enabled. // Mastodon alternatives like GoToSocial will always fail these checks, so @@ -72,6 +75,9 @@ export default defineNuxtConfig({ }, }, nitro: { + publicAssets: [ + ...(isDevelopment || isPreview ? [{ dir: fileURLToPath(new URL('./public-dev', import.meta.url)) }] : []), + ], prerender: { crawlLinks: false, routes: ['/', '/200.html'], @@ -82,6 +88,15 @@ export default defineNuxtConfig({ head: { // Prevent arbitrary zooming on mobile devices viewport: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no', + 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, diff --git a/public/favicon-16x16-dev.png b/public-dev/favicon-16x16.png similarity index 100% rename from public/favicon-16x16-dev.png rename to public-dev/favicon-16x16.png diff --git a/public/favicon-32x32-dev.png b/public-dev/favicon-32x32.png similarity index 100% rename from public/favicon-32x32-dev.png rename to public-dev/favicon-32x32.png diff --git a/public/favicon-dev.ico b/public-dev/favicon.ico similarity index 100% rename from public/favicon-dev.ico rename to public-dev/favicon.ico diff --git a/public/favicon-dev.png b/public-dev/favicon.png similarity index 100% rename from public/favicon-dev.png rename to public-dev/favicon.png diff --git a/public/logo-dev.svg b/public-dev/logo.svg similarity index 100% rename from public/logo-dev.svg rename to public-dev/logo.svg