Domanda

Sono abbastanza nuovo in Javascript, NodeJS e, ovviamente, TypeScript.Mi piacerebbe sperimentare i servizi del compilatore in src/services (Windows) per fornire IntelliSense, ecc.per un editore.

Per quanto ne so, devo essere in grado di farlo require il codice dei servizi TypeScript in un server NodeJS e comunicare con quello dall'editor.Non sono riuscito a trovare alcun codice dei servizi TypeScript specifico di NodeJS, quindi penso che dovrei compilare il codice dei servizi con --module amd per renderlo disponibile a NodeJS tramite RequireJS.

Se quanto sopra è corretto, i miei tentativi di compilare il codice dei servizi con --module amd produce esattamente gli stessi risultati dell'utilizzo del tipo di modulo predefinito (vedi sotto).

$ tsc.cmd --module amd --out amd.js .\languageService.ts
$ tsc.cmd --out comm.js .\languageService.ts
$ diff.exe .\amd.js .\comm.js
$
È stato utile?

Soluzione

Ciò è certamente fonte di confusione, ma il codice in LanguageService.ts non è in un "modulo" nel senso della definizione di "modulo" di AMD/RequireJS.

Le specifiche si riferiscono a cose all'interno di a module blocco come "moduli interni".Questo è ciò che vedi in LanguageService.ts.Puoi pensarli più come contenitori o singleton che espongono un nome di primo livello (guardare la generazione del codice per un semplice modulo interno lo chiarisce un po').Li consumi come normali oggetti di livello superiore senza alcun caricatore di moduli.

Produrre esterno moduli (come indicato nelle specifiche) per require si fa mettendo il export direttiva su una dichiarazione di livello superiore in un file .ts (vedere la sezione specifica 9.2.1).Ci sono alcuni campioni (es.imageboard) disponibile per il download che esegue questa operazione se sei interessato.

Altri suggerimenti

Devi avere i tuoi moduli definiti come export module, non il tuo module e poi compilarlo con --m amd O --module amd.

Mi ci sono volute alcune ore per realizzarlo :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top