From e0eeb720cdb4e302043b96cdc59e2917762ebb20 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 18 Dec 2023 21:10:47 +0900 Subject: [PATCH] feat: upgrade to Vite v5 --- ...vite.config.ts => electron.vite.config.mts | 11 +++--- package.json | 10 +++--- pnpm-lock.yaml | 36 ++++++++++--------- tsconfig.json | 9 +++-- .../{i18n-importer.ts => i18n-importer.mts} | 4 ++- ...plugin-importer.ts => plugin-importer.mts} | 4 ++- .../{plugin-loader.ts => plugin-loader.mts} | 5 ++- 7 files changed, 49 insertions(+), 30 deletions(-) rename electron.vite.config.ts => electron.vite.config.mts (92%) rename vite-plugins/{i18n-importer.ts => i18n-importer.mts} (88%) rename vite-plugins/{plugin-importer.ts => plugin-importer.mts} (92%) rename vite-plugins/{plugin-loader.ts => plugin-loader.mts} (96%) diff --git a/electron.vite.config.ts b/electron.vite.config.mts similarity index 92% rename from electron.vite.config.ts rename to electron.vite.config.mts index c527c26c..b4f6e318 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.mts @@ -1,15 +1,18 @@ -import { resolve } from 'node:path'; +import { resolve, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { defineConfig, defineViteConfig } from 'electron-vite'; import builtinModules from 'builtin-modules'; import viteResolve from 'vite-plugin-resolve'; import Inspect from 'vite-plugin-inspect'; -import { pluginVirtualModuleGenerator } from './vite-plugins/plugin-importer'; -import pluginLoader from './vite-plugins/plugin-loader'; +import { pluginVirtualModuleGenerator } from './vite-plugins/plugin-importer.mjs'; +import pluginLoader from './vite-plugins/plugin-loader.mjs'; import type { UserConfig } from 'vite'; -import { i18nImporter } from './vite-plugins/i18n-importer'; +import { i18nImporter } from './vite-plugins/i18n-importer.mjs'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); const resolveAlias = { '@': resolve(__dirname, './src'), diff --git a/package.json b/package.json index a74e3109..2d139b44 100644 --- a/package.json +++ b/package.json @@ -77,8 +77,8 @@ "rpm" ] }, - "rpm":{ - "depends":[ + "rpm": { + "depends": [ "/usr/lib64/libuuid.so.1" ] }, @@ -123,6 +123,7 @@ }, "pnpm": { "overrides": { + "esbuild": "0.18.20", "usocket": "1.0.1", "rollup": "4.9.1", "node-gyp": "10.0.1", @@ -187,7 +188,8 @@ "electron": "28.0.0", "electron-builder": "24.9.1", "electron-devtools-installer": "3.2.0", - "electron-vite": "1.0.29", + "electron-vite": "2.0.0-beta.1", + "esbuild": "0.18.20", "eslint": "8.56.0", "eslint-import-resolver-exports": "1.0.0-beta.5", "eslint-import-resolver-typescript": "3.6.1", @@ -199,7 +201,7 @@ "rollup": "4.9.1", "typescript": "5.3.3", "utf-8-validate": "6.0.3", - "vite": "4.5.1", + "vite": "5.0.10", "vite-plugin-inspect": "0.8.1", "vite-plugin-resolve": "2.5.1", "ws": "8.15.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 596c0d9a..3ab81c50 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: + esbuild: 0.18.20 usocket: 1.0.1 rollup: 4.9.1 node-gyp: 10.0.1 @@ -173,8 +174,11 @@ devDependencies: specifier: 3.2.0 version: 3.2.0 electron-vite: - specifier: 1.0.29 - version: 1.0.29(vite@4.5.1) + specifier: 2.0.0-beta.1 + version: 2.0.0-beta.1(vite@5.0.10) + esbuild: + specifier: 0.18.20 + version: 0.18.20 eslint: specifier: 8.56.0 version: 8.56.0 @@ -209,11 +213,11 @@ devDependencies: specifier: 6.0.3 version: 6.0.3 vite: - specifier: 4.5.1 - version: 4.5.1(@types/node@20.10.5) + specifier: 5.0.10 + version: 5.0.10(@types/node@20.10.5) vite-plugin-inspect: specifier: 0.8.1 - version: 0.8.1(rollup@4.9.1)(vite@4.5.1) + version: 0.8.1(rollup@4.9.1)(vite@5.0.10) vite-plugin-resolve: specifier: 2.5.1 version: 2.5.1 @@ -2758,13 +2762,13 @@ packages: - supports-color dev: false - /electron-vite@1.0.29(vite@4.5.1): - resolution: {integrity: sha512-BDTmVTLIri8W4Lz1tn5RAV1slSTinBBb6G77+qKcjkF0vEwdiUp2ntSU6FDqwP9pmy1t96U1CZqIYIStF8H6Jw==} - engines: {node: ^14.18.0 || >=16.0.0} + /electron-vite@2.0.0-beta.1(vite@5.0.10): + resolution: {integrity: sha512-4KNb6+yWYEnmHG2exTUiS470Z38dllgkYy7rIV9kkIT4dVLVXu0ShBGct/94tDW004o++vCtd/Blqogv9nUI6Q==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@swc/core': ^1.0.0 - vite: ^3.0.0 || ^4.0.0 + vite: ^4.0.0 || ^5.0.0 peerDependenciesMeta: '@swc/core': optional: true @@ -2775,7 +2779,7 @@ packages: esbuild: 0.18.20 magic-string: 0.30.5 picocolors: 1.0.0 - vite: 4.5.1(@types/node@20.10.5) + vite: 5.0.10(@types/node@20.10.5) transitivePeerDependencies: - supports-color dev: true @@ -6026,7 +6030,7 @@ packages: dev: true optional: true - /vite-plugin-inspect@0.8.1(rollup@4.9.1)(vite@4.5.1): + /vite-plugin-inspect@0.8.1(rollup@4.9.1)(vite@5.0.10): resolution: {integrity: sha512-oPBPVGp6tBd5KdY/qY6lrbLXqrbHRG0hZLvEaJfiZ/GQfDB+szRuLHblQh1oi1Hhh8GeLit/50l4xfs2SA+TCA==} engines: {node: '>=14'} peerDependencies: @@ -6044,7 +6048,7 @@ packages: open: 9.1.0 picocolors: 1.0.0 sirv: 2.0.3 - vite: 4.5.1(@types/node@20.10.5) + vite: 5.0.10(@types/node@20.10.5) transitivePeerDependencies: - rollup - supports-color @@ -6056,12 +6060,12 @@ packages: lib-esm: 0.4.1 dev: true - /vite@4.5.1(@types/node@20.10.5): - resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==} - engines: {node: ^14.18.0 || >=16.0.0} + /vite@5.0.10(@types/node@20.10.5): + resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@types/node': '>= 14' + '@types/node': ^18.0.0 || >=20.0.0 less: '*' lightningcss: ^1.21.0 sass: '*' diff --git a/tsconfig.json b/tsconfig.json index a42c3609..e34d17fb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,9 @@ { "extends": "@electron-toolkit/tsconfig/tsconfig.node.json", "compilerOptions": { - "target": "ESNext", + "target": "esnext", "lib": ["dom", "dom.iterable", "es2022"], - "module": "CommonJS", + "module": "esnext", "types": ["electron-vite/node"], "allowSyntheticDefaultImports": true, "esModuleInterop": true, @@ -21,5 +21,8 @@ } }, "exclude": ["./dist"], - "include": ["electron.vite.config.ts", "./src/**/*"] + "include": [ + "electron.vite.config.mts", + "./src/**/*" + ] } diff --git a/vite-plugins/i18n-importer.ts b/vite-plugins/i18n-importer.mts similarity index 88% rename from vite-plugins/i18n-importer.ts rename to vite-plugins/i18n-importer.mts index f2a137aa..d1c7f29f 100644 --- a/vite-plugins/i18n-importer.ts +++ b/vite-plugins/i18n-importer.mts @@ -1,4 +1,5 @@ -import { basename, relative, resolve, extname } from 'node:path'; +import { basename, relative, resolve, extname, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { globSync } from 'glob'; import { Project } from 'ts-morph'; @@ -7,6 +8,7 @@ const snakeToCamel = (text: string) => text.replace(/-(\w)/g, (_, letter: string) => letter.toUpperCase()); export const i18nImporter = () => { + const __dirname = dirname(fileURLToPath(import.meta.url)); const project = new Project({ tsConfigFilePath: resolve(__dirname, '..', 'tsconfig.json'), skipAddingFilesFromTsConfig: true, diff --git a/vite-plugins/plugin-importer.ts b/vite-plugins/plugin-importer.mts similarity index 92% rename from vite-plugins/plugin-importer.ts rename to vite-plugins/plugin-importer.mts index 58aea0f7..2fa6f754 100644 --- a/vite-plugins/plugin-importer.ts +++ b/vite-plugins/plugin-importer.mts @@ -1,4 +1,5 @@ -import { basename, relative, resolve, extname } from 'node:path'; +import { basename, relative, resolve, extname, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { globSync } from 'glob'; import { Project } from 'ts-morph'; @@ -9,6 +10,7 @@ const snakeToCamel = (text: string) => export const pluginVirtualModuleGenerator = ( mode: 'main' | 'preload' | 'renderer', ) => { + const __dirname = dirname(fileURLToPath(import.meta.url)); const project = new Project({ tsConfigFilePath: resolve(__dirname, '..', 'tsconfig.json'), skipAddingFilesFromTsConfig: true, diff --git a/vite-plugins/plugin-loader.ts b/vite-plugins/plugin-loader.mts similarity index 96% rename from vite-plugins/plugin-loader.ts rename to vite-plugins/plugin-loader.mts index 26fef631..ed1099e4 100644 --- a/vite-plugins/plugin-loader.ts +++ b/vite-plugins/plugin-loader.mts @@ -1,5 +1,6 @@ import { readFile } from 'node:fs/promises'; -import { resolve, basename } from 'node:path'; +import { resolve, basename, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { createFilter } from 'vite'; import { Project, ts, ObjectLiteralExpression, VariableDeclarationKind } from 'ts-morph'; @@ -17,6 +18,8 @@ export default function (mode: 'backend' | 'preload' | 'renderer' | 'none'): Plu async load(id) { if (!pluginFilter(id)) return null; + const __dirname = dirname(fileURLToPath(import.meta.url)); + const project = new Project({ tsConfigFilePath: resolve(__dirname, '..', 'tsconfig.json'), skipAddingFilesFromTsConfig: true,