TypeScript MSBuild編譯選項(xiàng)

2022-05-31 14:55 更新

概述

編譯選項(xiàng)可以在使用MSBuild的項(xiàng)目里通過(guò)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屬性名稱(chēng) 可用值
--declaration TypeScriptGeneratesDeclarations 布爾值
--module TypeScriptModuleKind AMDCommonJsUMD 或 System
--target TypeScriptTarget ES3ES5, 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 布爾值
--noUnusedLocals TypeScriptNoUnusedLocals 布爾值
--noUnusedParameters TypeScriptNoUnusedParameters 布爾值
--noLib TypeScriptNoLib 布爾值
--noResolve TypeScriptNoResolve 布爾值
--out TypeScriptOutFile 文件路徑
--outDir TypeScriptOutDir 文件路徑
--preserveConstEnums TypeScriptPreserveConstEnums 布爾值
--removeComments TypeScriptRemoveComments 布爾值
--rootDir TypeScriptRootDir 文件路徑
--isolatedModules TypeScriptIsolatedModules 布爾值
--sourceMap TypeScriptSourceMap 文件路徑
--sourceRoot TypeScriptSourceRoot 文件路徑
--strictNullChecks TypeScriptStrictNullChecks 布爾值
--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)

我使用的Visual Studio版本里支持哪些選項(xiàng)?

查找 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets文件。 可用的MSBuild XML標(biāo)簽與相應(yīng)的tsc編譯選項(xiàng)的映射都在那里。

ToolsVersion

工程文件里的<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>屬性值表明了構(gòu)建時(shí)使用的編譯器的版本號(hào)(這個(gè)例子里是1.7) 這樣就允許一個(gè)工程在不同的機(jī)器上使用固定的版本去編譯。

如果沒(méi)有指定TypeScriptToolsVersion,則會(huì)使用機(jī)器上安裝的最新版本的編譯器去構(gòu)建。

如果用戶(hù)使用的是更新版本的TypeScript,則會(huì)在首次加載工程的時(shí)候看到一個(gè)提示升級(jí)工程的對(duì)話(huà)框。

TypeScriptCompileBlocked

如果你使用其它的構(gòu)建工具(比如,gulp, grunt等等)并且使用VS做為開(kāi)發(fā)和調(diào)試工具,那么在工程里設(shè)置<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>。 這樣VS只會(huì)提供給你編輯的功能,而不會(huì)在你按F5的時(shí)候去構(gòu)建。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)