Vite
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
Usare TypeORM in un progetto Vite è piuttosto semplice. Tuttavia, quando si utilizzano le migrazioni, durante la build di produzione si incontreranno errori del tipo "...migration name is wrong. Migration class name should have a JavaScript timestamp appended". Nelle build di produzione, i file vengono ottimizzati di default, il che include l'offuscamento del codice per ridurre le dimensioni dei file.
Hai 3 opzioni per risolvere questo problema. Le opzioni sono mostrate qui sotto come modifiche a questo file base vite.config.ts.
import legacy from "@vitejs/plugin-legacy"
import vue from "@vitejs/plugin-vue"
import path from "path"
import { defineConfig } from "vite"
// https://vitejs.dev/config/
export default defineConfig({
build: {
sourcemap: true,
},
plugins: [vue(), legacy()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
})
Opzione 1: Disabilita la minificazione
Questa è la soluzione più grezza e produrrà file significativamente più grandi. Aggiungi build.minify = false alla tua configurazione.
--- basic vite.config.ts
+++ disable minify vite.config.ts
@@ -7,6 +7,7 @@
export default defineConfig({
build: {
sourcemap: true,
+ minify: false,
},
plugins: [vue(), legacy()],
resolve: {
Opzione 2: Disabilita la minificazione degli identificatori in esbuild
Vite utilizza esbuild come minificatore predefinito. Puoi disabilitare l'offuscamento degli identificatori aggiungendo esbuild.minifyIdentifiers = false alla configurazione.
Questo ridurrà le dimensioni dei file, ma a seconda del tuo codice base otterrai rendimenti decrescenti poiché tutti gli identificatori manterranno la loro lunghezza originale.
--- basic vite.config.ts
+++ disable esbuild minify identifiers vite.config.ts
@@ -8,6 +8,7 @@
build: {
sourcemap: true,
},
+ esbuild: { minifyIdentifiers: false },
plugins: [vue(), legacy()],
resolve: {
Opzione 3: Usa terser come minificatore mantenendo solo i nomi delle classi di migrazione
Vite supporta l'uso di terser come minificatore. Terser è più lento di esbuild, ma offre un controllo più granulare su cosa minificare.
Aggiungi minify: 'terser' insieme a terserOptions.mangle.keep_classnames: /^Migrations\d+$/ e terserOptions.compress.keep_classnames: /^Migrations\d+$/ alla configurazione.
Queste opzioni assicureranno che i nomi delle classi che iniziano con "Migrations" e terminano con numeri non vengano rinominati durante la minificazione.
Assicurati che terser sia disponibile come dipendenza di sviluppo nel tuo progetto: npm add -D terser.
--- basic vite.config.ts
+++ terser keep migration class names vite.config.ts
@@ -7,6 +7,11 @@
export default defineConfig({
build: {
sourcemap: true,
+ minify: 'terser',
+ terserOptions: {
+ mangle: { keep_classnames: /^Migrations\d+$/ },
+ compress: { keep_classnames: /^Migrations\d+$/ },
+ },
},
plugins: [vue(), legacy()],
resolve: {