Files

97 lines
2.7 KiB
TypeScript

import { defineConfig } from 'wxt';
import { viteStaticCopy } from 'vite-plugin-static-copy';
import { config } from 'dotenv';
import { resolve } from 'path';
config({ path: resolve(process.cwd(), '.env') });
config({ path: resolve(process.cwd(), '.env.local') });
const CHROME_EXTENSION_KEY = process.env.CHROME_EXTENSION_KEY;
// See https://wxt.dev/api/config.html
export default defineConfig({
modules: ['@wxt-dev/module-vue'],
runner: {
// 方案1: 禁用自动启动(推荐)
disabled: true,
// 方案2: 如果要启用自动启动并使用现有配置,取消注释下面的配置
// chromiumArgs: [
// '--user-data-dir=' + homedir() + (process.platform === 'darwin'
// ? '/Library/Application Support/Google/Chrome'
// : process.platform === 'win32'
// ? '/AppData/Local/Google/Chrome/User Data'
// : '/.config/google-chrome'),
// '--remote-debugging-port=9222',
// ],
},
manifest: {
// Use environment variable for the key, fallback to undefined if not set
key: CHROME_EXTENSION_KEY,
default_locale: 'en',
name: '__MSG_extensionName__',
description: '__MSG_extensionDescription__',
permissions: [
'tabs',
'activeTab',
'storage',
'scripting',
'debugger',
'webRequest',
'history',
'bookmarks',
'offscreen',
],
host_permissions: ['<all_urls>'],
web_accessible_resources: [
{
resources: [
'/models/*', // 允许访问 public/models/ 下的所有文件
'/workers/*', // 允许访问 workers 文件
],
matches: ['<all_urls>'],
},
],
cross_origin_embedder_policy: {
value: 'require-corp',
},
cross_origin_opener_policy: {
value: 'same-origin',
},
content_security_policy: {
extension_pages: "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';",
},
},
vite: (env) => ({
plugins: [
viteStaticCopy({
targets: [
{
src: 'inject-scripts/*.js',
dest: 'inject-scripts',
},
{
src: ['workers/*'],
dest: 'workers',
},
{
src: '_locales/**/*',
dest: '_locales',
},
],
}) as any,
],
build: {
// 我们的构建产物需要兼容到es6
target: 'es2015',
// 非生产环境下生成sourcemap
sourcemap: env.mode !== 'production',
// 禁用gzip 压缩大小报告,因为压缩大型文件可能会很慢
reportCompressedSize: false,
// chunk大小超过1500kb是触发警告
chunkSizeWarningLimit: 1500,
minify: false,
},
}),
});