TypeScript MSBuild编译选项
概述
编译选项可以在使用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
自动的
自动设置成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
任意编译选项
我使用的Visual Studio版本里支持哪些选项?
查找 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets文件。 可用的MSBuild XML标签与相应的tsc编译选项的映射都在那里。
ToolsVersion
工程文件里的<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>属性值表明了构建时使用的编译器的版本号(这个例子里是1.7) 这样就允许一个工程在不同的机器上使用固定的版本去编译。
如果没有指定TypeScriptToolsVersion,则会使用机器上安装的最新版本的编译器去构建。
如果用户使用的是更新版本的TypeScript,则会在首次加载工程的时候看到一个提示升级工程的对话框。
TypeScriptCompileBlocked
如果你使用其它的构建工具(比如,gulp, grunt等等)并且使用VS做为开发和调试工具,那么在工程里设置<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>。 这样VS只会提供给你编辑的功能,而不会在你按F5的时候去构建。