Vai al contenuto principale

Vite

Traduzione Beta Non Ufficiale

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: {