wxt.config.ts
Rama main · réplica de lectura del repositorio original.
import { createRequire } from 'node:module'
import tailwindcss from '@tailwindcss/vite'
import svgLoader from 'vite-svg-loader'
import { defineConfig } from 'wxt'
const { version } = createRequire(import.meta.url)('./package.json')
export default defineConfig({
srcDir: 'src',
vite: () => ({
plugins: [
tailwindcss(),
svgLoader(),
{
name: 'inject-theme-init',
transformIndexHtml: {
order: 'pre',
handler: () => [
{ tag: 'script', injectTo: 'head-prepend', attrs: { src: '/theme-init.js' } },
],
},
},
],
}),
publicDir: 'src/public',
modules: ['@wxt-dev/module-vue'],
manifest: ({ browser }) => ({
name: '__MSG_extName__',
description: '__MSG_extDescription__',
default_locale: 'en_US',
version,
icons: {
16: 'icon-16.png',
32: 'icon-32.png',
48: 'icon-48.png',
64: 'icon-64.png',
128: 'icon-128.png',
},
optional_host_permissions: ['*://*/*'],
// oxlint-disable-next-line typescript/no-explicit-any -- Firefox requires optional_permissions instead of optional_host_permissions
...(browser === 'firefox' && { optional_permissions: ['*://*/*' as any] }),
permissions: ['storage', 'alarms', 'activeTab', 'contextMenus'],
browser_specific_settings: {
gecko: {
id: 'pihole-in-one@creeperkatze.dev',
data_collection_permissions: {
required: ['none'],
},
},
},
}),
zip: {
artifactTemplate: 'pihole-in-one-{{version}}-{{browser}}.zip',
sourcesTemplate: 'pihole-in-one-{{version}}-sources.zip',
},
})