ضبط خيارات المترجم في مشاريع MSBuild في TypeScript

من موسوعة حسوب


مقدمة

يُمكن تحديد خيارات المترجم عبر استخدام خاصيات 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')" />

الاقترانات (Mappings)

الخيار اسم خاصية MSBuild القيم المسموح بها
--allowJs ‎غير مدعوم في MSBuild.
--allowSyntheticDefaultImports TypeScriptAllowSyntheticDefaultImports ‎قيمة منطقية
--allowUnreachableCode TypeScriptAllowUnreachableCode ‎قيمة منطقية
--allowUnusedLabels TypeScriptAllowUnusedLabels ‎قيمة منطقية
--alwaysStrict TypeScriptAlwaysStrict ‎قيمة منطقية
--baseUrl TypeScriptBaseUrl ‎مسار ملفّ
--charset TypeScriptCharset
--declaration TypeScriptGeneratesDeclarations ‎قيمة منطقية
--declarationDir TypeScriptDeclarationDir ‎مسار ملفّ
--diagnostics غير مدعوم
--disableSizeLimit غير مدعوم
--emitBOM TypeScriptEmitBOM قيمة منطقيّة
--emitDecoratorMetadata TypeScriptEmitDecoratorMetadata قيمة منطقيّة
--emitDeclarationOnly TypeScriptEmitDeclarationOnly قيمة منطقيّة
--emitBOM TypeScriptEmitBOM قيمة منطقيّة
--esModuleInterop TypeScriptESModuleInterop قيمة منطقيّة
--experimentalAsyncFunctions TypeScriptExperimentalAsyncFunctions قيمة منطقيّة
--experimentalDecorators TypeScriptExperimentalDecorators قيمة منطقيّة
--forceConsistentCasingInFileNames TypeScriptForceConsistentCasingInFileNames قيمة منطقيّة
--help غير مدعوم
--importHelpers TypeScriptImportHelpers قيمة منطقيّة
--inlineSourceMap TypeScriptInlineSourceMap قيمة منطقيّة
--inlineSources TypeScriptInlineSources قيمة منطقيّة
--init غير مدعوم
--isolatedModules TypeScriptIsolatedModules قيمة منطقيّة
--jsx TypeScriptJSXEmit React‎ أو ‎Preserve
--jsxFactory TypeScriptJSXFactory اسمٌ خاصّ.
--lib TypeScriptLib قائمة سلاسلَ نصيةٍ مُفصولةٍ بفاصلة (Comma).
--listEmittedFiles غير مدعوم
--listFiles غير مدعوم
--locale تلقائي تُضبَط قيمته افتراضيًّا إلى قيمة PreferredUILang.
--mapRoot TypeScriptMapRoot ‎مسار ملفّ
--maxNodeModuleJsDepth TypeScriptMapRoot ‎غير مدعوم
--module TypeScriptModuleKind ‎‎AMD‎، أو ‎CommonJs‎، أو ‎UMD‎، أو ‎System‎، أو ‎ES6‎.
--moduleResolution TypeScriptModuleResolution ‎‎Classic‎ أو ‎Node
--newLine TypeScriptNewLine ‎‎CRLF‎ أو ‎LF
--noEmit غير مدعوم
--noEmitHelpers TypeScriptNoEmitHelpers قيمة منطقيّة
--noEmitOnError TypeScriptNoEmitOnError قيمة منطقيّة
--noFallthroughCasesInSwitch TypeScriptNoFallthroughCasesInSwitch قيمة منطقيّة
--noImplicitAny TypeScriptNoImplicitAny قيمة منطقيّة
--noImplicitReturns TypeScriptNoImplicitReturns قيمة منطقيّة
--noImplicitThis TypeScriptNoImplicitThis قيمة منطقيّة
--noImplicitUseStrict TypeScriptNoImplicitUseStrict قيمة منطقيّة
--noStrictGenericChecks TypeScriptNoStrictGenericChecks قيمة منطقيّة
--noUnusedLocals TypeScriptNoUnusedLocals قيمة منطقيّة
--noUnusedParameters TypeScriptNoUnusedParameters قيمة منطقيّة
--noLib TypeScriptNoLib قيمة منطقيّة
--noResolve TypeScriptNoResolve قيمة منطقيّة
--out TypeScriptOutFile ‎مسار ملفّ
--outDir TypeScriptOutDir ‎مسار ملفّ
--outFile TypeScriptOutFile ‎مسار ملفّ
--paths غير مدعوم
--preserveConstEnums TypeScriptPreserveConstEnums قيمة منطقيّة
--preserveSymlinks TypeScriptPreserveSymlinks قيمة منطقيّة
--listEmittedFiles غير مدعوم
--pretty غير مدعوم
--reactNamespace TypeScriptReactNamespace سلسلة نصيّة‎
--removeComments TypeScriptRemoveComments قيمة منطقية‎
--rootDir TypeScriptRootDir مسار ملفّات‎
--rootDirs غير مدعوم
--skipLibCheck TypeScriptSkipLibCheck قيمة منطقيّة‎
--skipDefaultLibCheck TypeScriptSkipDefaultLibCheck قيمة منطقيّة‎
--sourceMap TypeScriptSourceMap مسار ملفّات ‎
--sourceRoot TypeScriptSourceRoot مسار ملفّات ‎
--strict TypeScriptStrict قيمة منطقيّة‎
--strictFunctionTypes TypeScriptStrictFunctionTypes قيمة منطقيّة
--strictNullChecks TypeScriptStrictNullChecks قيمة منطقيّة
--strictPropertyInitialization TypeScriptStrictPropertyInitialization قيمة منطقيّة
--stripInternal TypeScriptStripInternal قيمة منطقيّة
--suppressExcessPropertyErrors TypeScriptSuppressExcessPropertyErrors قيمة منطقيّة
--suppressImplicitAnyIndexErrors TypeScriptSuppressImplicitAnyIndexErrors قيمة منطقيّة
--target TypeScriptTarget ES3‎، أو ‎ES5‎، أو ‎ES6‎.
--traceResolution غير مدعوم
--types غير مدعوم
--typeRoots غير مدعوم
--watch غير مدعوم
‎خيار موجود في MSBuild فقط. TypeScriptAdditionalFlags أي خيار من خيارات المترجم.‎

ما هي الخيارات المدعومة في نسخة Visual Studio الخاصة بي؟

انظر ملفّ ‎C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets‎. الاقترانات المعتمدة بين وسوم XML في MSBuild وخيارات المترجم ‎tsc‎ موجودة في هذا الملفّ.

ToolsVersion

تُحدِّد قيمة الخاصية ‎<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>‎ في ملف المشروع نسخةَ المترجم التي ستُستَخدَم لبناء المشروع (1.7 في هذا المثال). هذا يسمح لمشروعٍ بالبناء باستخدام نفس نسخة المترجم على أجهزة ومنصات مختلفة.

إذا لم تُحدَّد النسخة عبر ‎TypeScriptToolsVersion‎، فسيُستخدَم أحدث إصدار من المترجم المثبت على الجهاز لبناء المشروع.

سيُلاحظ مستخدمو النسخ الأحدث من TypeScript محثًّا (prompt) يحثّ على ترقية المشروع في أول تحميل.

TypeScriptCompileBlocked

إن كنت تستعمل أداة بناء مختلفة لبناء مشروعك (مثل gulp، أوgrunt أو ما شابه)، مع Visual Studio للتطوير والتنقيح (debugging)، فاضبط الوسم ‎<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>‎ في مشروعك. سيمنحك هذا كل الدعم الذي تحتاج إليه عند التحرير دون بناء المشروع عند الضغط على مفتاح F5.

مصادر