Visual Studio 2015 RC opretter ikke sourcemap, når man gemmer en Typescript-fil


Jeg er meget ny til TypeScript og prøver det af i den nyeste Visual Studio 2015 RC.

I øjeblikket kompilerer det typescript-filen automatisk og opretter den underliggende js-fil (pænt under .ts-filen, når du udvider den), når jeg gemmer ts-filen. Der er dog ingen sourcemap-fil, så jeg rammer aldrig nogen breakpoints i typescript i Visual Studio under fejlsøgning (uanset om jeg bruger IE eller Chrome Canary).

Er der en måde at aktivere det på, så det genererer sourcemap-filer ved gemning? Ud fra mine søgninger ser det ud til, at mange af compiler-indstillingerne, der plejede at være i Web Essentials, enten er blevet flyttet eller ikke er tilgængelige (endnu?):

Svar #1

Jeg fandt ud af, at ved at afbelaste projektet og redigere 'xproj'-filen, hvis jeg tilføjer følgende xml under projektnoden (før property-gruppen, der indeholder 'VSToolsPath'):

<PropertyGroup>
    <TypeScriptTarget>ES5</TypeScriptTarget>
    <TypeScriptCompileOnSaveEnabled>true</TypeScriptCompileOnSaveEnabled>
    <TypeScriptNoImplicitAny>false</TypeScriptNoImplicitAny>
    <TypeScriptModuleKind>AMD</TypeScriptModuleKind>
    <TypeScriptRemoveComments>false</TypeScriptRemoveComments>
    <TypeScriptOutFile></TypeScriptOutFile>
    <TypeScriptOutDir></TypeScriptOutDir>
    <TypeScriptGeneratesDeclarations>false</TypeScriptGeneratesDeclarations>
    <TypeScriptSourceMap>true</TypeScriptSourceMap>
    <TypeScriptMapRoot></TypeScriptMapRoot>
    <TypeScriptSourceRoot></TypeScriptSourceRoot>
    <TypeScriptNoEmitOnError>true</TypeScriptNoEmitOnError>
</PropertyGroup>

Dette løste problemet, og .map-filerne blev genereret ved gemning (pænt under js-filerne). Dette gør det muligt for mig at ramme mine TypeScript-breakpoints i Visual Studio (desværre kun med IE).

En anden gavnlig bivirkning er, at jeg nu kan eksportere moduler (på grund af indstillingen 'TypeScriptModuleKind' => AMD).

Svar #2

Jeg har fundet et alternativ, hvis du går ind for at tilføje en ny fil til dit projekt, er der en TypeScript-konfigurationsfilmulighed. Så hvis du tilføjer en 'tsconfig.json', får du de samme indstillinger:

{
  "compilerOptions": {
    "module": "amd",
    "noEmitOnError": true,
    "noImplicitAny": false,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5"
  }
}

Jeg gætter på, at dette er bedre, da det potentielt ville tillade flere konfigurationer for forskellige TypeScript-apps i forskellige mapper. For mit projekt har jeg blot placeret det i roden for at anvende det globalt.

Relaterede artikler