From d2130bb592fdd48f993850295a23e5ded289c6c7 Mon Sep 17 00:00:00 2001 From: suyao Date: Wed, 23 Apr 2025 21:37:33 +0800 Subject: [PATCH] refactor: switch from @vitejs/plugin-react to @vitejs/plugin-react-swc for improved performance --- electron.vite.config.ts | 28 +++-- package.json | 3 +- yarn.lock | 250 ++++++++++++++++++++++++++-------------- 3 files changed, 179 insertions(+), 102 deletions(-) diff --git a/electron.vite.config.ts b/electron.vite.config.ts index 8a21f81e8e..7c94b899cc 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -1,5 +1,5 @@ import { sentryVitePlugin } from '@sentry/vite-plugin' -import viteReact from '@vitejs/plugin-react' +import react from '@vitejs/plugin-react-swc' import { defineConfig, externalizeDepsPlugin } from 'electron-vite' import { resolve } from 'path' import { visualizer } from 'rollup-plugin-visualizer' @@ -7,7 +7,7 @@ import { visualizer } from 'rollup-plugin-visualizer' const visualizerPlugin = (type: 'renderer' | 'main') => { return process.env[`VISUALIZER_${type.toUpperCase()}`] ? [visualizer({ open: true })] : [] } -// const viteReact = await import('@vitejs/plugin-react') + export default defineConfig({ main: { plugins: [ @@ -52,20 +52,18 @@ export default defineConfig({ }, renderer: { plugins: [ - viteReact({ - babel: { - plugins: [ - [ - 'styled-components', - { - displayName: true, // 开发环境下启用组件名称 - fileName: false, // 不在类名中包含文件名 - pure: true, // 优化性能 - ssr: false // 不需要服务端渲染 - } - ] + react({ + plugins: [ + [ + '@swc/plugin-styled-components', + { + displayName: true, // 开发环境下启用组件名称 + fileName: false, // 不在类名中包含文件名 + pure: true, // 优化性能 + ssr: false // 不需要服务端渲染 + } ] - } + ] }), sentryVitePlugin({ authToken: process.env.SENTRY_AUTH_TOKEN, diff --git a/package.json b/package.json index 21c4e3c23c..f9c80d2d9b 100644 --- a/package.json +++ b/package.json @@ -129,6 +129,7 @@ "@reduxjs/toolkit": "^2.2.5", "@sentry/react": "^9.13.0", "@sentry/vite-plugin": "^3.3.1", + "@swc/plugin-styled-components": "^7.1.3", "@tavily/core": "patch:@tavily/core@npm%3A0.3.1#~/.yarn/patches/@tavily-core-npm-0.3.1-fe69bf2bea.patch", "@tryfabric/martian": "^1.2.4", "@types/adm-zip": "^0", @@ -144,7 +145,7 @@ "@types/react-infinite-scroll-component": "^5.0.0", "@types/tinycolor2": "^1", "@types/ws": "^8", - "@vitejs/plugin-react": "^4.4.1", + "@vitejs/plugin-react-swc": "^3.9.0", "@vitest/coverage-v8": "^3.1.1", "@vitest/ui": "^3.1.1", "antd": "^5.22.5", diff --git a/yarn.lock b/yarn.lock index badcbf799d..d5bf790042 100644 --- a/yarn.lock +++ b/yarn.lock @@ -222,7 +222,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.18.5, @babel/core@npm:^7.24.7, @babel/core@npm:^7.26.10": +"@babel/core@npm:^7.18.5, @babel/core@npm:^7.24.7": version: 7.26.10 resolution: "@babel/core@npm:7.26.10" dependencies: @@ -341,7 +341,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.27.0": +"@babel/parser@npm:^7.25.4, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.27.0": version: 7.27.0 resolution: "@babel/parser@npm:7.27.0" dependencies: @@ -374,28 +374,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/ce0e289f6af93d7c4dc6b385512199c5bb138ae61507b4d5117ba88b6a6b5092f704f1bdf80080b7d69b1b8c36649f2a0b250e8198667d4d30c08bbb1546bd99 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-source@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/fc9ee08efc9be7cbd2cc6788bbf92579adf3cab37912481f1b915221be3d22b0613b5b36a721df5f4c0ab65efe8582fcf8673caab83e6e1ce4cc04ceebf57dfa - languageName: node - linkType: hard - "@babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.16.7, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.6, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.24.7, @babel/runtime@npm:^7.24.8, @babel/runtime@npm:^7.25.7, @babel/runtime@npm:^7.26.0, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.9.2": version: 7.27.0 resolution: "@babel/runtime@npm:7.27.0" @@ -431,7 +409,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.0": +"@babel/types@npm:^7.25.4, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.0": version: 7.27.0 resolution: "@babel/types@npm:7.27.0" dependencies: @@ -4083,6 +4061,147 @@ __metadata: languageName: node linkType: hard +"@swc/core-darwin-arm64@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-darwin-arm64@npm:1.11.21" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-darwin-x64@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-darwin-x64@npm:1.11.21" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@swc/core-linux-arm-gnueabihf@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.11.21" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@swc/core-linux-arm64-gnu@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-linux-arm64-gnu@npm:1.11.21" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-arm64-musl@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-linux-arm64-musl@npm:1.11.21" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-linux-x64-gnu@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-linux-x64-gnu@npm:1.11.21" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-x64-musl@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-linux-x64-musl@npm:1.11.21" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-win32-arm64-msvc@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-win32-arm64-msvc@npm:1.11.21" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-win32-ia32-msvc@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-win32-ia32-msvc@npm:1.11.21" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@swc/core-win32-x64-msvc@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-win32-x64-msvc@npm:1.11.21" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@swc/core@npm:^1.11.21": + version: 1.11.21 + resolution: "@swc/core@npm:1.11.21" + dependencies: + "@swc/core-darwin-arm64": "npm:1.11.21" + "@swc/core-darwin-x64": "npm:1.11.21" + "@swc/core-linux-arm-gnueabihf": "npm:1.11.21" + "@swc/core-linux-arm64-gnu": "npm:1.11.21" + "@swc/core-linux-arm64-musl": "npm:1.11.21" + "@swc/core-linux-x64-gnu": "npm:1.11.21" + "@swc/core-linux-x64-musl": "npm:1.11.21" + "@swc/core-win32-arm64-msvc": "npm:1.11.21" + "@swc/core-win32-ia32-msvc": "npm:1.11.21" + "@swc/core-win32-x64-msvc": "npm:1.11.21" + "@swc/counter": "npm:^0.1.3" + "@swc/types": "npm:^0.1.21" + peerDependencies: + "@swc/helpers": ">=0.5.17" + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: 10c0/d37d21bcc8656e1719c262403eb54f3ec7925493642ca17bf4061ddf67cb327ea2718ad1da749b9db0c6e6e3aeb2d9f0e544939688408c4f89d38982c24612d4 + languageName: node + linkType: hard + +"@swc/counter@npm:^0.1.3": + version: 0.1.3 + resolution: "@swc/counter@npm:0.1.3" + checksum: 10c0/8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356 + languageName: node + linkType: hard + +"@swc/plugin-styled-components@npm:^7.1.3": + version: 7.1.3 + resolution: "@swc/plugin-styled-components@npm:7.1.3" + dependencies: + "@swc/counter": "npm:^0.1.3" + checksum: 10c0/5567c95038e26f69d1a5ab0fb430badffbda1b8fb4eea27430442486589410dfd6805ceda28b91c88502fbba4319f82d0534c6f8f9ff581e4ace5fb031ec4917 + languageName: node + linkType: hard + +"@swc/types@npm:^0.1.21": + version: 0.1.21 + resolution: "@swc/types@npm:0.1.21" + dependencies: + "@swc/counter": "npm:^0.1.3" + checksum: 10c0/2baa89c824426e0de0c84e212278010e2df8dc2d6ffaa6f1e306e1b2930c6404b3d3f8989307e8c42ceb95ac143ab7a80be138af6a014d5c782dce5be94dcd5e + languageName: node + linkType: hard + "@szmarczak/http-timer@npm:^4.0.5": version: 4.0.6 resolution: "@szmarczak/http-timer@npm:4.0.6" @@ -4164,47 +4283,6 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7.20.5": - version: 7.20.5 - resolution: "@types/babel__core@npm:7.20.5" - dependencies: - "@babel/parser": "npm:^7.20.7" - "@babel/types": "npm:^7.20.7" - "@types/babel__generator": "npm:*" - "@types/babel__template": "npm:*" - "@types/babel__traverse": "npm:*" - checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff - languageName: node - linkType: hard - -"@types/babel__generator@npm:*": - version: 7.27.0 - resolution: "@types/babel__generator@npm:7.27.0" - dependencies: - "@babel/types": "npm:^7.0.0" - checksum: 10c0/9f9e959a8792df208a9d048092fda7e1858bddc95c6314857a8211a99e20e6830bdeb572e3587ae8be5429e37f2a96fcf222a9f53ad232f5537764c9e13a2bbd - languageName: node - linkType: hard - -"@types/babel__template@npm:*": - version: 7.4.4 - resolution: "@types/babel__template@npm:7.4.4" - dependencies: - "@babel/parser": "npm:^7.1.0" - "@babel/types": "npm:^7.0.0" - checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b - languageName: node - linkType: hard - -"@types/babel__traverse@npm:*": - version: 7.20.7 - resolution: "@types/babel__traverse@npm:7.20.7" - dependencies: - "@babel/types": "npm:^7.20.7" - checksum: 10c0/5386f0af44f8746b063b87418f06129a814e16bb2686965a575e9d7376b360b088b89177778d8c426012abc43dd1a2d8ec3218bfc382280c898682746ce2ffbd - languageName: node - linkType: hard - "@types/cacheable-request@npm:^6.0.1": version: 6.0.3 resolution: "@types/cacheable-request@npm:6.0.3" @@ -4809,18 +4887,14 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-react@npm:^4.4.1": - version: 4.4.1 - resolution: "@vitejs/plugin-react@npm:4.4.1" +"@vitejs/plugin-react-swc@npm:^3.9.0": + version: 3.9.0 + resolution: "@vitejs/plugin-react-swc@npm:3.9.0" dependencies: - "@babel/core": "npm:^7.26.10" - "@babel/plugin-transform-react-jsx-self": "npm:^7.25.9" - "@babel/plugin-transform-react-jsx-source": "npm:^7.25.9" - "@types/babel__core": "npm:^7.20.5" - react-refresh: "npm:^0.17.0" + "@swc/core": "npm:^1.11.21" peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - checksum: 10c0/0eda45f2026cdfff4b172b1b2148824e5ac41ce65f1f1ce108f3ce4de2f0024caf79c811c1305a782168a269b0b1bc58d4cf8eaf164e4ef19954f05428ba7077 + vite: ^4 || ^5 || ^6 + checksum: 10c0/28e99f2833d390982b9ab17ccabe7fa7562c30ea56cf57b34fe97dc401958ce838bfbb8f562f73c2764e041f8672f10ca3872220fd78660fc9cc43b539bb7962 languageName: node linkType: hard @@ -5048,6 +5122,7 @@ __metadata: "@sentry/react": "npm:^9.13.0" "@sentry/vite-plugin": "npm:^3.3.1" "@strongtz/win32-arm64-msvc": "npm:^0.4.7" + "@swc/plugin-styled-components": "npm:^7.1.3" "@tavily/core": "patch:@tavily/core@npm%3A0.3.1#~/.yarn/patches/@tavily-core-npm-0.3.1-fe69bf2bea.patch" "@tryfabric/martian": "npm:^1.2.4" "@types/adm-zip": "npm:^0" @@ -5063,7 +5138,7 @@ __metadata: "@types/react-infinite-scroll-component": "npm:^5.0.0" "@types/tinycolor2": "npm:^1" "@types/ws": "npm:^8" - "@vitejs/plugin-react": "npm:^4.4.1" + "@vitejs/plugin-react-swc": "npm:^3.9.0" "@vitest/coverage-v8": "npm:^3.1.1" "@vitest/ui": "npm:^3.1.1" "@xyflow/react": "npm:^12.4.4" @@ -5118,7 +5193,7 @@ __metadata: npx-scope-finder: "npm:^1.2.0" officeparser: "npm:^4.1.1" openai: "patch:openai@npm%3A4.87.3#~/.yarn/patches/openai-npm-4.87.3-2b30a7685f.patch" - os-proxy-config: "npm:^1.1.1" + os-proxy-config: "patch:os-proxy-config@npm%3A1.1.1#~/.yarn/patches/os-proxy-config-npm-1.1.1-af9c7574cc.patch" p-queue: "npm:^8.1.0" prettier: "npm:^3.5.3" proxy-agent: "npm:^6.5.0" @@ -13827,7 +13902,7 @@ __metadata: languageName: node linkType: hard -"os-proxy-config@npm:^1.1.1": +"os-proxy-config@npm:1.1.1": version: 1.1.1 resolution: "os-proxy-config@npm:1.1.1" dependencies: @@ -13837,6 +13912,16 @@ __metadata: languageName: node linkType: hard +"os-proxy-config@patch:os-proxy-config@npm%3A1.1.1#~/.yarn/patches/os-proxy-config-npm-1.1.1-af9c7574cc.patch": + version: 1.1.1 + resolution: "os-proxy-config@patch:os-proxy-config@npm%3A1.1.1#~/.yarn/patches/os-proxy-config-npm-1.1.1-af9c7574cc.patch::version=1.1.1&hash=6d7077" + dependencies: + mac-system-proxy: "npm:^1.0.0" + windows-system-proxy: "npm:^1.0.0" + checksum: 10c0/22022450101e5a4ddc948bec5508b14829f88f377ec11a660779d747d61dc10a45c6733c823bd38235207de278ebedb6d3b8d3236a90714f1c726424a1c7a3ad + languageName: node + linkType: hard + "ow@npm:^0.28.1": version: 0.28.2 resolution: "ow@npm:0.28.2" @@ -15574,13 +15659,6 @@ __metadata: languageName: node linkType: hard -"react-refresh@npm:^0.17.0": - version: 0.17.0 - resolution: "react-refresh@npm:0.17.0" - checksum: 10c0/002cba940384c9930008c0bce26cac97a9d5682bc623112c2268ba0c155127d9c178a9a5cc2212d560088d60dfd503edd808669a25f9b377f316a32361d0b23c - languageName: node - linkType: hard - "react-router-dom@npm:6": version: 6.30.0 resolution: "react-router-dom@npm:6.30.0"