refactor: switch from @vitejs/plugin-react to @vitejs/plugin-react-swc for improved performance

This commit is contained in:
suyao 2025-04-23 21:37:33 +08:00 committed by 亢奋猫
parent 07b2c6f169
commit 4c2c026f6d
3 changed files with 179 additions and 102 deletions

View File

@ -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,

View File

@ -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",

250
yarn.lock
View File

@ -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"