refactor: env config (#769)
This commit is contained in:
parent
9d5dc1bc3d
commit
f892722220
13 changed files with 121 additions and 64 deletions
|
@ -1,5 +1,5 @@
|
|||
import { defineNuxtModule } from '@nuxt/kit'
|
||||
import type { VitePluginPWAAPI } from 'vite-plugin-pwa'
|
||||
import type { VitePWAOptions, VitePluginPWAAPI } from 'vite-plugin-pwa'
|
||||
import { VitePWA } from 'vite-plugin-pwa'
|
||||
import type { Plugin } from 'vite'
|
||||
import type { VitePWANuxtOptions } from './types'
|
||||
|
@ -32,14 +32,17 @@ export default defineNuxtModule<VitePWANuxtOptions>({
|
|||
if (plugin)
|
||||
throw new Error('Remove vite-plugin-pwa plugin from Vite Plugins entry in Nuxt config file!')
|
||||
})
|
||||
nuxt.hook('vite:extendConfig', (viteInlineConfig, { isClient }) => {
|
||||
nuxt.hook('vite:extendConfig', async (viteInlineConfig, { isClient }) => {
|
||||
viteInlineConfig.plugins = viteInlineConfig.plugins || []
|
||||
const plugin = viteInlineConfig.plugins.find(p => p && typeof p === 'object' && 'name' in p && p.name === 'vite-plugin-pwa')
|
||||
if (plugin)
|
||||
throw new Error('Remove vite-plugin-pwa plugin from Vite Plugins entry in Nuxt config file!')
|
||||
|
||||
configurePWAOptions(options, nuxt)
|
||||
const plugins = VitePWA(options)
|
||||
const resolvedOptions: Partial<VitePWAOptions> = {
|
||||
...options,
|
||||
manifest: options.manifest ? await options.manifest() : undefined,
|
||||
}
|
||||
configurePWAOptions(resolvedOptions, nuxt)
|
||||
const plugins = VitePWA(resolvedOptions)
|
||||
viteInlineConfig.plugins.push(plugins)
|
||||
if (isClient)
|
||||
vitePwaClientPlugin = plugins.find(p => p.name === 'vite-plugin-pwa') as Plugin
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
import type { VitePWAOptions } from 'vite-plugin-pwa'
|
||||
import type { ManifestOptions, VitePWAOptions } from 'vite-plugin-pwa'
|
||||
import type { Overwrite } from '../../types/utils'
|
||||
|
||||
export interface VitePWANuxtOptions extends Partial<VitePWAOptions> {}
|
||||
export type VitePWANuxtOptions = Overwrite<Partial<VitePWAOptions>, {
|
||||
manifest?: () => Promise<Partial<ManifestOptions>>
|
||||
}>
|
||||
|
||||
declare module '@nuxt/schema' {
|
||||
interface NuxtConfig {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue