編譯選項(xiàng)可以在使用MSBuild的項(xiàng)目里通過MSBuild屬性指定。
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptRemoveComments>false</TypeScriptRemoveComments>
<TypeScriptSourceMap>true</TypeScriptSourceMap>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<TypeScriptRemoveComments>true</TypeScriptRemoveComments>
<TypeScriptSourceMap>false</TypeScriptSourceMap>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets"
Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
編譯選項(xiàng) | MSBuild屬性名稱 | 可用值 |
---|---|---|
--declaration |
TypeScriptGeneratesDeclarations | 布爾值 |
--module |
TypeScriptModuleKind | AMD , CommonJs , UMD 或 System |
--target |
TypeScriptTarget | ES3 , ES5 , or ES6 |
--charset |
TypeScriptCharset | |
--emitBOM |
TypeScriptEmitBOM | 布爾值 |
--emitDecoratorMetadata |
TypeScriptEmitDecoratorMetadata | 布爾值 |
--experimentalDecorators |
TypeScriptExperimentalDecorators | 布爾值 |
--inlineSourceMap |
TypeScriptInlineSourceMap | 布爾值 |
--inlineSources |
TypeScriptInlineSources | 布爾值 |
--locale |
自動(dòng)的 | 自動(dòng)設(shè)置成PreferredUILang的值 |
--mapRoot |
TypeScriptMapRoot | 文件路徑 |
--newLine |
TypeScriptNewLine | CRLF 或 LF |
--noEmitOnError |
TypeScriptNoEmitOnError | 布爾值 |
--noEmitHelpers |
TypeScriptNoEmitHelpers | 布爾值 |
--noImplicitAny |
TypeScriptNoImplicitAny | 布爾值 |
--noLib |
TypeScriptNoLib | 布爾值 |
--noResolve |
TypeScriptNoResolve | 布爾值 |
--out |
TypeScriptOutFile | 文件路徑 |
--outDir |
TypeScriptOutDir | 文件路徑 |
--preserveConstEnums |
TypeScriptPreserveConstEnums | 布爾值 |
--removeComments |
TypeScriptRemoveComments | 布爾值 |
--rootDir |
TypeScriptRootDir | 文件路徑 |
--isolatedModules |
TypeScriptIsolatedModules | 布爾值 |
--sourceMap |
TypeScriptSourceMap | 文件路徑 |
--sourceRoot |
TypeScriptSourceRoot | 文件路徑 |
--suppressImplicitAnyIndexErrors |
TypeScriptSuppressImplicitAnyIndexErrors | 布爾值 |
--suppressExcessPropertyErrors |
TypeScriptSuppressExcessPropertyErrors | 布爾值 |
--moduleResolution |
TypeScriptModuleResolution | Classic or Node |
--experimentalAsyncFunctions |
TypeScriptExperimentalAsyncFunctions | 布爾值 |
--jsx |
TypeScriptJSXEmit | React or Preserve |
--reactNamespace |
TypeScriptReactNamespace | string |
--skipDefaultLibCheck |
TypeScriptSkipDefaultLibCheck | 布爾值 |
--allowUnusedLabels |
TypeScriptAllowUnusedLabels | 布爾值 |
--noImplicitReturns |
TypeScriptNoImplicitReturns | 布爾值 |
--noFallthroughCasesInSwitch |
TypeScriptNoFallthroughCasesInSwitch | 布爾值 |
--allowUnreachableCode |
TypeScriptAllowUnreachableCode | 布爾值 |
--forceConsistentCasingInFileNames |
TypeScriptForceConsistentCasingInFileNames | 布爾值 |
--allowSyntheticDefaultImports |
TypeScriptAllowSyntheticDefaultImports | 布爾值 |
--noImplicitUseStrict |
TypeScriptNoImplicitUseStrict | 布爾值 |
--project |
VS不支持 | |
--watch |
VS不支持 | |
--diagnostics |
VS不支持 | |
--listFiles |
VS不支持 | |
--noEmit |
VS不支持 | |
--allowJs |
VS不支持 | |
VS特有選項(xiàng) | TypeScriptAdditionalFlags | 任意編譯選項(xiàng) |
查找 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets
文件。
可用的MSBuild XML標(biāo)簽與相應(yīng)的tsc
編譯選項(xiàng)的映射都在那里。
工程文件里的<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>
屬性值表明了構(gòu)建時(shí)使用的編譯器的版本號(hào)(這個(gè)例子里是1.7)
這樣就允許一個(gè)工程在不同的機(jī)器上使用固定的版本去編譯。
如果沒有指定TypeScriptToolsVersion
,則會(huì)使用機(jī)器上安裝的最新版本的編譯器去構(gòu)建。
如果用戶使用的是更新版本的TypeScript,則會(huì)在首次加載工程的時(shí)候看到一個(gè)提示升級(jí)工程的對(duì)話框。
如果你使用其它的構(gòu)建工具(比如,gulp, grunt等等)并且使用VS做為開發(fā)和調(diào)試工具,那么在工程里設(shè)置<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
。
這樣VS只會(huì)提供給你編輯的功能,而不會(huì)在你按F5的時(shí)候去構(gòu)建。