refactor: split tauri config into module

This commit is contained in:
Daniel Roe 2022-12-20 23:56:57 +00:00
parent 44cf8aa89c
commit 2d49074242
No known key found for this signature in database
GPG key ID: 22D5008E4F5D9B55
5 changed files with 43 additions and 27 deletions

View file

@ -1,6 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
setupI18n() setupI18n()
setupLogging()
setupPageHeader() setupPageHeader()
provideGlobalCommands() provideGlobalCommands()

View file

@ -1,21 +0,0 @@
import * as log from 'tauri-plugin-log-api'
// When running inside Tauri, catch all logs from 3rd party packages and direct them to the unified logging stream
export function setupLogging() {
if (import.meta.env.TAURI_PLATFORM) {
// eslint-disable-next-line no-global-assign
console = {
...console,
trace: log.trace,
debug: log.debug,
log: log.info,
warn: log.warn,
error: log.error,
}
window.addEventListener('unhandledrejection', err =>
log.error(err.reason),
)
window.addEventListener('error', err => log.error(err.error), true)
}
}

21
modules/tauri/index.ts Normal file
View file

@ -0,0 +1,21 @@
import { addPlugin, createResolver, defineNuxtModule, useNuxt } from '@nuxt/kit'
export default defineNuxtModule({
meta: {
name: 'tauri',
},
setup() {
const nuxt = useNuxt()
const { resolve } = createResolver(import.meta.url)
if (!process.env.TAURI_PLATFORM)
return
nuxt.hook('vite:extend', ({ config }) => {
config.build!.target = ['es2021', 'chrome100', 'safari13']
config.envPrefix = [...config.envPrefix || [], 'VITE_', 'TAURI_']
})
addPlugin(resolve('./runtime/logging.client'))
},
})

View file

@ -0,0 +1,19 @@
import * as log from 'tauri-plugin-log-api'
// When running inside Tauri, catch all logs from 3rd party packages and direct them to the unified logging stream
export default defineNuxtPlugin(() => {
// eslint-disable-next-line no-global-assign
console = {
...console,
trace: log.trace,
debug: log.debug,
log: log.info,
warn: log.warn,
error: log.error,
}
window.addEventListener('unhandledrejection', err =>
log.error(err.reason),
)
window.addEventListener('error', err => log.error(err.error), true)
})

View file

@ -21,8 +21,10 @@ export default defineNuxtConfig({
'~/modules/purge-comments', '~/modules/purge-comments',
'~/modules/setup-components', '~/modules/setup-components',
'~/modules/pwa/index', // change to '@vite-pwa/nuxt' once released and remove pwa module '~/modules/pwa/index', // change to '@vite-pwa/nuxt' once released and remove pwa module
'~/modules/tauri/index',
], ],
experimental: { experimental: {
payloadExtraction: false,
reactivityTransform: true, reactivityTransform: true,
inlineSSRStyles: false, inlineSSRStyles: false,
}, },
@ -38,10 +40,6 @@ export default defineNuxtConfig({
querystring: 'rollup-plugin-node-polyfills/polyfills/qs', querystring: 'rollup-plugin-node-polyfills/polyfills/qs',
}, },
vite: { 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_'],
define: { define: {
'import.meta.env.__BUILD_TIME__': JSON.stringify(new Date().toISOString()), 'import.meta.env.__BUILD_TIME__': JSON.stringify(new Date().toISOString()),
'import.meta.env.__BUILD_COMMIT__': JSON.stringify(process.env.COMMIT_REF || ''), 'import.meta.env.__BUILD_COMMIT__': JSON.stringify(process.env.COMMIT_REF || ''),
@ -49,7 +47,7 @@ export default defineNuxtConfig({
'process.mock': ((!isCI || isPreview) && process.env.MOCK_USER) || 'false', 'process.mock': ((!isCI || isPreview) && process.env.MOCK_USER) || 'false',
}, },
build: { build: {
target: process.env.TAURI_PLATFORM ? ['es2021', 'chrome100', 'safari13'] : 'esnext', target: 'esnext',
}, },
plugins: [ plugins: [
Inspect(), Inspect(),