TypeScript项目配置: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属性名称可用值
--allowJsMSBuild不支持此选项
--allowSyntheticDefaultImportsTypeScriptAllowSyntheticDefaultImports布尔值
--allowUnreachableCodeTypeScriptAllowUnreachableCode布尔值
--allowUnusedLabelsTypeScriptAllowUnusedLabels布尔值
--alwaysStrictTypeScriptAlwaysStrict布尔值
--baseUrlTypeScriptBaseUrl文件路径
--charsetTypeScriptCharset
--declarationTypeScriptGeneratesDeclarations布尔值
--declarationDirTypeScriptDeclarationDir文件路径
--diagnosticsMSBuild不支持此选项
--disableSizeLimitMSBuild不支持此选项
--emitBOMTypeScriptEmitBOM布尔值
--emitDecoratorMetadataTypeScriptEmitDecoratorMetadata布尔值
--experimentalAsyncFunctionsTypeScriptExperimentalAsyncFunctions布尔值
--experimentalDecoratorsTypeScriptExperimentalDecorators布尔值
--forceConsistentCasingInFileNamesTypeScriptForceConsistentCasingInFileNames布尔值
--helpMSBuild不支持此选项
--importHelpersTypeScriptImportHelpers布尔值
--inlineSourceMapTypeScriptInlineSourceMap布尔值
--inlineSourcesTypeScriptInlineSources布尔值
--initMSBuild不支持此选项
--isolatedModulesTypeScriptIsolatedModules布尔值
--jsxTypeScriptJSXEmitReact或 Preserve
--jsxFactoryTypeScriptJSXFactory有效的名字
--libTypeScriptLib逗号分隔的字符串列表
--listEmittedFilesMSBuild不支持此选项
--listFilesMSBuild不支持此选项
--localeautomatic自动设置为PreferredUILang值
--mapRootTypeScriptMapRoot文件路径
--maxNodeModuleJsDepthMSBuild不支持此选项
--moduleTypeScriptModuleKindAMD, CommonJs, UMD, System或 ES6
--moduleResolutionTypeScriptModuleResolutionClassic或 Node
--newLineTypeScriptNewLineCRLF或 LF
--noEmitMSBuild不支持此选项
--noEmitHelpersTypeScriptNoEmitHelpers布尔值
--noEmitOnErrorTypeScriptNoEmitOnError布尔值
--noFallthroughCasesInSwitchTypeScriptNoFallthroughCasesInSwitch布尔值
--noImplicitAnyTypeScriptNoImplicitAny布尔值
--noImplicitReturnsTypeScriptNoImplicitReturns布尔值
--noImplicitThisTypeScriptNoImplicitThis布尔值
--noImplicitUseStrictTypeScriptNoImplicitUseStrict布尔值
--noStrictGenericChecksTypeScriptNoStrictGenericChecks布尔值
--noUnusedLocalsTypeScriptNoUnusedLocals布尔值
--noUnusedParametersTypeScriptNoUnusedParameters布尔值
--noLibTypeScriptNoLib布尔值
--noResolveTypeScriptNoResolve布尔值
--outTypeScriptOutFile文件路径
--outDirTypeScriptOutDir文件路径
--outFileTypeScriptOutFile文件路径
--pathsMSBuild不支持此选项
--preserveConstEnumsTypeScriptPreserveConstEnums布尔值
--preserveSymlinksTypeScriptPreserveSymlinks布尔值
--listEmittedFilesMSBuild不支持此选项
--prettyMSBuild不支持此选项
--reactNamespaceTypeScriptReactNamespace字符串
--removeCommentsTypeScriptRemoveComments布尔值
--rootDirTypeScriptRootDir文件路径
--rootDirsMSBuild不支持此选项
--skipLibCheckTypeScriptSkipLibCheck布尔值
--skipDefaultLibCheckTypeScriptSkipDefaultLibCheck布尔值
--sourceMapTypeScriptSourceMap文件路径
--sourceRootTypeScriptSourceRoot文件路径
--strictTypeScriptStrict布尔值
--strictFunctionTypesTypeScriptStrictFunctionTypes布尔值
--strictPropertyInitializationTypeScriptStrictPropertyInitialization布尔值
--strictNullChecksTypeScriptStrictNullChecks布尔值
--stripInternalTypeScriptStripInternal布尔值
--suppressExcessPropertyErrorsTypeScriptSuppressExcessPropertyErrors布尔值
--suppressImplicitAnyIndexErrorsTypeScriptSuppressImplicitAnyIndexErrors布尔值
--targetTypeScriptTargetES3, ES5,或 ES6
--traceResolutionMSBuild不支持此选项
--typesMSBuild不支持此选项
--typeRootsMSBuild不支持此选项
--watchMSBuild不支持此选项
MSBuild only optionTypeScriptAdditionalFlags任何编译选项

我使用的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的时候去构建。

作者:terry,如若转载,请注明出处:https://www.web176.com/typescript/1338.html

(0)
打赏 支付宝 支付宝 微信 微信
terryterry
上一篇 2020年12月14日 下午5:54
下一篇 2020年12月14日 下午6:07

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注


Fatal error: Uncaught JSMin_UnterminatedStringException: JSMin: Unterminated String at byte 561: '$(C…", in /www/wwwroot/web176.cc/wp-content/plugins/autoptimize/classes/external/php/jsmin.php:214 Stack trace: #0 /www/wwwroot/web176.cc/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(152): JSMin->action() #1 /www/wwwroot/web176.cc/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(86): JSMin->min() #2 /www/wwwroot/web176.cc/wp-content/plugins/autoptimize/classes/external/php/ao-minify-html.php(257): JSMin::minify() #3 [internal function]: AO_Minify_HTML->_removeScriptCB() #4 /www/wwwroot/web176.cc/wp-content/plugins/autoptimize/classes/external/php/ao-minify-html.php(108): preg_replace_callback() #5 /www/wwwroot/web176.cc/wp-content/plugins/autoptimize/classes/external/php/ao-minify-html.php(47): AO_Minify_HTML->process() #6 /www/wwwroot/web176.cc/wp-content/plugins/autoptimize/classes/autoptimizeHTML.php(105): AO_Minify_HTML::minify() #7 /www/wwwroot/web176.cc/wp-content/plugins/autoptimize/clas in /www/wwwroot/web176.cc/wp-content/plugins/autoptimize/classes/external/php/jsmin.php on line 214