2016-02-04 31 views
6

Qual è la migliore pratica di distribuzione del server NodeJS scritto in TypeScript in produzione?Distribuzione del server NodeJS Typescript

Voglio evitare di avere 3 file (ts, js, mappa) per ogni script nel mio repository git.

Potrei usare grunt/gulp per creare la directory "dist" e copiare tutti i file compilati lì, ma poi li avrò comunque nel mio repo. Potrei creare un repository separato solo per il codice compilato, ma questo non è l'ideale, penso.

Inoltre, quando corro node app.ts senza js o la mappa esistente, avvia effettivamente tutto bene. Quindi i file compilati sono necessari anche per il nodo server?

Nota: non ho alcuna compilation script/task in atto, il mio IDE sta compilando automaticamente i file ts per me.

risposta

6

È possibile utilizzare dattiloscritto per fare tutto questo per voi

tsconfig.json

{ 
    ... 
    "outDir": "dist", 
    "sourceMap": false, 
    "declaration": false 
} 
  • outDir compilerà i file in una directory dist
  • sourceMap determinerà se uscita .map file
  • declaration determinerà se emettere .d.ts file

Più opzioni possono essere trovate here e informazioni sull'utilizzo di un file tsconfig.json può essere trovato here

+0

ma questo sarebbe ancora bisogno di passaggio manuale Wouldnt? Quello che sto cercando è di spingere * .ts in repo e poi automaticamente caricarlo sul server senza che io debba effettuare il login e ancora meglio senza fare affidamento sul processo di compilazione sul server. Se questo dovesse fallire, sarebbe un problema – Tom

+0

La compilazione è necessaria in qualche momento. L'utilizzo di un elemento della configurazione per compilare e quindi distribuire i file compilati su un server in caso di successo è comune. Un altro approccio consiste nell'usare qualcosa come 'npm' per pubblicare solo i file compilati e quindi attivare una distribuzione sul server che estrae dal repository' npm'. Non c'è un modo magico di fare ciò che stai chiedendo, dovrai configurare un percorso di infrastruttura che gestirà questo per te. Ci sono molte guide e tutorial su questo che puoi trovare online, e non devi essere specifico per TypeScript dato che dopo la compilazione, è tutto solo JavaScript dopo tutto – SnareChops

+0

Giusto, quindi la risposta è pre-compilare il codice sulla macchina dev e premere allo stesso repository o repository separato solo per codice compilato. Ora come mai quel nodo app.ts sta funzionando bene senza avere i file js generadet? – Tom

Problemi correlati