MSBuild编译选项
在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编译选项的映射都在那里。
工程文件里的<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>属性值表明了构建时使用的编译器的版本号(这个例子里是1.7) 这样就允许一个工程在不同的机器上使用固定的版本去编译。
如果没有指定TypeScriptToolsVersion,则会使用机器上安装的最新版本的编译器去构建。
如果用户使用的是更新版本的TypeScript,则会在首次加载工程的时候看到一个提示升级工程的对话框。
TypeScriptCompileBlocked
如果你使用其它的构建工具(比如,gulp, grunt等等)并且使用VS做为开发和调试工具
那么在工程里设置<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>。 这样VS只会提供给你编辑的功能,而不会在你按F5的时候去构建。