編譯選項可以在使用MSBuild的項目里通過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')" />
編譯選項 | 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
|
自動的 | 自動設(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特有選項 | TypeScriptAdditionalFlags | 任意編譯選項 |
查找 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets
文件。 可用的MSBuild XML標(biāo)簽與相應(yīng)的tsc
編譯選項的映射都在那里。
工程文件里的<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>
屬性值表明了構(gòu)建時使用的編譯器的版本號(這個例子里是1.7) 這樣就允許一個工程在不同的機(jī)器上使用固定的版本去編譯。
如果沒有指定TypeScriptToolsVersion
,則會使用機(jī)器上安裝的最新版本的編譯器去構(gòu)建。
如果用戶使用的是更新版本的TypeScript,則會在首次加載工程的時候看到一個提示升級工程的對話框。
如果你使用其它的構(gòu)建工具(比如,gulp, grunt等等)并且使用VS做為開發(fā)和調(diào)試工具,那么在工程里設(shè)置<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
。 這樣VS只會提供給你編輯的功能,而不會在你按F5的時候去構(gòu)建。
更多建議: