javascript - Hur man blandar Node.js och Typescript i samma Visual Studio-projekt?


Visual Studio har ett Typescript-tillägg för att utveckla appar med Typescript-språket.

Och det finns också Node.js-verktygen för VS, med vilka man kan skapa och felsöka Node.js-applikationer.

Jag försökte skapa ett Node.js-projekt, men då kunde jag inte lägga till Typescript-filer i det, och om jag lade till dem manuellt blev de inte kompilerade till JavaScript (kunde inte ställa in deras Byggåtgärd till TypeScriptCompile).
Och om jag skapar ett enkelt Typescript-projekt startar det inte min app med Node, eftersom det i princip bara är ett ASP.Net-webbprojekt.

Är det möjligt att på något sätt skapa ett VS-projekt som använder Typescript och Node.js-integrering samtidigt?

Svar #1

Ja, det är möjligt, men på ett något klumpigt sätt (jag hoppas att Node.js-verktygen kommer att stödja detta bättre i framtiden).

Du bör skapa ett Node.js-projekt och lägga till en ny fil. Välj ny textfil och ange dess namn med .ts-tillägg. Det kommer att skapa en TypeScript-fil.

Vid detta tillfälle kommer du att ha TypeScript-filer utan kompilerad JavaScript.

För att åtgärda detta, gå till VS "Verktyg"-menyn, öppna "Alternativ" och gå till "Textredigerare" > "TypeScript" > "Projekt" och under "Kompilera vid sparande" markera "Kompilera automatiskt TypeScript-filer som inte är en del av ett projekt" och välj "Använd commonjs...".

Efter det, öppna varje .ts-fil och spara den - tsc kommer att kompilera den till JavaScript.

Nackdelen med denna lösning är att du måste komma ihåg att spara varje .ts du redigerar manuellt, men jag tror inte att det är något stort problem.

Här är en länk till inlägget som hjälpte mig med samma problem: http://blog.ctaggart.com/2013/11/nodejs-tools-with-typescript-console-app.html

Uppdatering

Om du hämtar den senaste utvecklarversionen av Node.js Tools kommer du att se att TypeScript-stöd har lagts till. Du kan skapa ett TypeScript-projekt (och detta inkluderar funktionen för att felsöka .ts-filer)

https://nodejstools.codeplex.com/discussions/531222

Relaterade artiklar