From e072b3f5c8a1e86ae22dae80271c3b9ae37323dc Mon Sep 17 00:00:00 2001 From: Alphons Joseph <93847055+Crazypersonalph@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:15:04 +0800 Subject: [PATCH] feat: remove sourcemaps from production build, add to new development build --- package.json | 1 + vite-dev.config.ts | 87 ++++++++++++++++++++++++++++++++++++++++++++++ vite.config.ts | 1 - 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 vite-dev.config.ts diff --git a/package.json b/package.json index fcbf4880..c1c70f8a 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "build:chrome": "cross-env MODE=chrome vite build", "build:firefox": "cross-env MODE=firefox vite build", "build:safari": "cross-env MODE=safari vite build", + "build:dev": "cross-env MODE=chrome vite build --config vite-dev.config.ts && cross-env MODE=firefox vite build --config vite-dev.config.ts", "convert:safari": "xcrun safari-web-extension-converter dist/safari --project-location . --app-name $npm_package_name-safari", "dependency-graph": "depcruise src --include-only \"^src\" --output-type dot | dot -T svg > dependency-graph.svg", "release": "gh release create $npm_package_name@$npm_package_version ./dist/*.zip --generate-notes", diff --git a/vite-dev.config.ts b/vite-dev.config.ts new file mode 100644 index 00000000..e0e7f2db --- /dev/null +++ b/vite-dev.config.ts @@ -0,0 +1,87 @@ +import { defineConfig } from 'vite'; +import { join, resolve } from 'path'; + +import { updateManifestPlugin } from './lib/patchPackage'; +import { base64Loader } from './lib/base64loader'; +import type { BuildTarget } from './lib/types'; +import ClosePlugin from './lib/closePlugin'; + +import react from '@vitejs/plugin-react'; +import million from "million/compiler"; +//import MillionLint from '@million/lint'; + +import { svelte } from '@sveltejs/vite-plugin-svelte' +import tailwindcss from '@tailwindcss/vite'; + +import { chrome } from './src/manifests/chrome'; +import { brave } from './src/manifests/brave'; +import { edge } from './src/manifests/edge'; +import { firefox } from './src/manifests/firefox'; +import { opera } from './src/manifests/opera'; +import { safari } from './src/manifests/safari'; +import { crx } from '@crxjs/vite-plugin'; + +const targets: BuildTarget[] = [ + chrome, brave, edge, firefox, opera, safari +] + +const mode = process.env.MODE || 'chrome'; + +export default defineConfig(({ command }) => ({ + plugins: [ + base64Loader, + react(), + tailwindcss(), + svelte({ + emitCss: false + }), + million.vite({ auto: true }), + //MillionLint.vite(), /* enable for testing and debugging performance */ + crx({ + manifest: targets.find(t => t.browser === mode.toLowerCase())?.manifest ?? chrome.manifest, + browser: mode.toLowerCase() === "firefox" ? "firefox" : "chrome" + }), + updateManifestPlugin(), + ...(command === 'build' ? [ClosePlugin()] : []) + ], + root: resolve(__dirname, './src'), + resolve: { + alias: { + '@': resolve(__dirname, './src') + }, + }, + server: { + port: 5173, + hmr: { + host: "localhost", + protocol: "ws", + port: 5173 + } + }, + css: { + preprocessorOptions: { + scss: { + api: 'modern' + } + } + }, + optimizeDeps: { + include: ['@babel/runtime/helpers/extends', '@babel/runtime/helpers/interopRequireDefault'], + }, + legacy: { + skipWebSocketTokenCheck: true, + }, + build: { + outDir: resolve(__dirname, 'dist', mode), + emptyOutDir: false, + minify: false, + sourcemap: "inline", + rollupOptions: { + input: { + settings: join(__dirname, 'src', 'interface', 'index.html'), + migration: join(__dirname, 'src', 'seqta', 'utils', 'migration', 'migrate.html'), + pageState: join(__dirname, 'src', 'pageState.js'), + } + } + } +})); \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index e0e7f2db..200ad4e3 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -75,7 +75,6 @@ export default defineConfig(({ command }) => ({ outDir: resolve(__dirname, 'dist', mode), emptyOutDir: false, minify: false, - sourcemap: "inline", rollupOptions: { input: { settings: join(__dirname, 'src', 'interface', 'index.html'),