diff --git a/electron.vite.config.ts b/electron.vite.config.ts index df8594439..a9db3996d 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -14,19 +14,6 @@ export default defineConfig({ externalizeDepsPlugin({ exclude: ['mermaid', 'dompurify'] }), - { - name: 'generate-i18n-types', - enforce: 'pre', - apply(_config, env) { - if(env.mode === 'development') return true - return false - }, - // 执行 generate-i18n-types.js - async buildStart() { - const { exec } = await import('child_process') - exec('node ./scripts/generate-i18n-types.js') - } - } ], resolve: { alias: { diff --git a/package.json b/package.json index cd50d74a2..2b277dae9 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "installRuntime:duckdb:vss": "node scripts/installVss.js", "i18n": "i18n-check -s zh-CN -f i18next --locales src/renderer/src/i18n", "i18n:en": "i18n-check -s en-US -f i18next --locales src/renderer/src/i18n", + "i18n:types": "node scripts/generate-i18n-types.js", "cleanRuntime": "rm -rf runtime/uv runtime/bun runtime/node" }, "dependencies": { diff --git a/scripts/generate-i18n-types.js b/scripts/generate-i18n-types.js index cfaa872c4..24e6349ce 100644 --- a/scripts/generate-i18n-types.js +++ b/scripts/generate-i18n-types.js @@ -9,7 +9,7 @@ const i18nDir = path.resolve(__dirname, '../src/renderer/src/i18n/zh-CN') const outputFile = path.resolve(__dirname, '../src/types/i18n.d.ts') function safeKey(key) { - return /^[a-zA-Z_\$][a-zA-Z0-9_\$]*$/.test(key) ? key : JSON.stringify(key) + return /^[a-zA-Z\$][a-zA-Z0-9_\$]*$/.test(key) ? key : `'${key}'` } function mergeKeys(target, source) { @@ -50,7 +50,7 @@ async function main() { mergeKeys(allKeys, json) } - const typeDef = `import { DefineLocaleMessage } from 'vue-i18n'\n\ndeclare module 'vue-i18n' {\n interface DefineLocaleMessage ${genType(allKeys, 4)}\n}\n` + const typeDef = `declare module 'vue-i18n' {\n interface DefineLocaleMessage ${genType(allKeys, 4)}\n}\n` fs.writeFileSync(outputFile, typeDef, 'utf-8') console.log('i18n types file generated:', outputFile)