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.
