From 939a5f7f930f90c519ea4e8d16fc2ed0c55201a3 Mon Sep 17 00:00:00 2001 From: Innei Date: Sat, 27 Jul 2024 19:40:18 +0800 Subject: [PATCH] chore: add visualizer Signed-off-by: Innei --- .gitignore | 1 + package.json | 1 + pnpm-lock.yaml | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ vite.config.ts | 8 +++++-- 4 files changed, 67 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 499d72cd6..26df8e5b5 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ out # Sentry Config File .env.sentry-build-plugin .vercel +stats.html diff --git a/package.json b/package.json index a29011780..022b41a47 100644 --- a/package.json +++ b/package.json @@ -156,6 +156,7 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "rimraf": "6.0.1", + "rollup-plugin-visualizer": "5.12.0", "simple-git-hooks": "2.11.1", "tailwindcss": "3.4.6", "typescript": "^5.5.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d9a79e2f6..d520fa238 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -392,6 +392,9 @@ importers: rimraf: specifier: 6.0.1 version: 6.0.1 + rollup-plugin-visualizer: + specifier: 5.12.0 + version: 5.12.0(rollup@4.18.0) simple-git-hooks: specifier: 2.11.1 version: 2.11.1 @@ -3442,6 +3445,10 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -4601,6 +4608,11 @@ packages: is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -4686,6 +4698,10 @@ packages: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -5355,6 +5371,10 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + opentelemetry-instrumentation-fetch-node@1.2.0: resolution: {integrity: sha512-aiSt/4ubOTyb1N5C2ZbGrBvaJOXIZhZvpRPYuUVxQJe27wJZqf/o65iPrqgLcgfeOLaQ8cS2Q+762jrYvniTrA==} engines: {node: '>18.0.0'} @@ -6019,6 +6039,16 @@ packages: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} + rollup-plugin-visualizer@5.12.0: + resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: + optional: true + rollup@4.18.0: resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -6166,6 +6196,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -10570,6 +10604,8 @@ snapshots: gopd: 1.0.1 optional: true + define-lazy-prop@2.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -12020,6 +12056,8 @@ snapshots: is-decimal@2.0.1: {} + is-docker@2.2.1: {} + is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -12085,6 +12123,10 @@ snapshots: is-windows@1.0.2: {} + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + isarray@1.0.0: {} isbinaryfile@4.0.10: {} @@ -12889,6 +12931,12 @@ snapshots: dependencies: mimic-fn: 4.0.0 + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + opentelemetry-instrumentation-fetch-node@1.2.0: dependencies: '@opentelemetry/api': 1.9.0 @@ -13553,6 +13601,15 @@ snapshots: sprintf-js: 1.1.3 optional: true + rollup-plugin-visualizer@5.12.0(rollup@4.18.0): + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + source-map: 0.7.4 + yargs: 17.7.2 + optionalDependencies: + rollup: 4.18.0 + rollup@4.18.0: dependencies: '@types/estree': 1.0.5 @@ -13707,6 +13764,8 @@ snapshots: source-map@0.6.1: {} + source-map@0.7.4: {} + space-separated-tokens@2.0.2: {} spdx-correct@3.2.0: diff --git a/vite.config.ts b/vite.config.ts index 97ae6b0a5..6087ca303 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,17 +4,19 @@ import { fileURLToPath } from "node:url" import { sentryVitePlugin } from "@sentry/vite-plugin" import react from "@vitejs/plugin-react" +import { visualizer } from "rollup-plugin-visualizer" import { defineConfig } from "vite" import { getGitHash } from "./scripts/lib" const pkg = JSON.parse(readFileSync("package.json", "utf8")) const __dirname = fileURLToPath(new URL(".", import.meta.url)) +const isCI = process.env.CI === "true" || process.env.CI === "1" export default defineConfig({ build: { outDir: resolve(__dirname, "out/web"), target: "ES2022", - sourcemap: true, + sourcemap: isCI, }, root: "./src/renderer", envDir: resolve(__dirname, "."), @@ -32,13 +34,15 @@ export default defineConfig({ sentryVitePlugin({ org: "follow-rg", project: "follow", - disable: process.env.NODE_ENV === "development", + disable: !isCI, moduleMetadata: { appVersion: process.env.NODE_ENV === "development" ? "dev" : pkg.version, electron: false, }, }), + + process.env.ANALYZER && visualizer({ open: true }), ], define: { APP_VERSION: JSON.stringify(pkg.version),