كيف أقوم بإضافة نسخة مطبوعة إلى مشروع Asp.Net MVC موجود؟[ينسخ]

StackOverflow https://stackoverflow.com//questions/12680486

  •  12-12-2019
  •  | 
  •  

سؤال

تعجبني فكرة الكتابة المكتوبة على الآلة الكاتبة، ولكن يبدو أنني لا أستطيع معرفة كيفية تضمينها في مشروع ASP.Net MVC.لقد قمت بالفعل بتثبيت ملحق Visual Studio، ولكن يبدو أنني لا أستطيع العثور على مثال أو وثائق حول كيفية الإضافة *.ts الملفات التي يتم تجميعها في *.js ملفات.

يحرر:في الواقع، هل يجب علي تكرار الطريقة التي استخدمها مثال Win8 .jsproj يشمل والمقابض .ts الملفات؟أم أن هذا سيعمل فقط مع مشاريع HTML/JS Win8؟

هل كانت مفيدة؟

المحلول

تحذير: أصبحت هذه الإجابة الآن قديمة إلى حد ما، حيث تغير كل من Typescript وMVC بشكل ملحوظ منذ هذه الإجابة.سأحاول التحديث لاحقا.- ريتشكودر

شكرا ل سوهني للإجابة.

يمكنك إضافة ملفات TypeScript إلى مشروع موجود باستخدام مربع الحوار Add > New Item.exampleImageيرجى ملاحظة أن عنصر "ملف Typescript" لا يوجد ضمن مجموعة الويب ولكن ضمن أصله في هذه الحالة Visual C#.

يجب أن يؤدي هذا إلى إضافة ملف TypeScript وسيقوم Visual Studio بالباقي.

ثم تحتاج إلى إضافة هذه الأسطر إلى ملف المشروع:

 <ItemGroup>
    <AvailableItemName Include="TypeScriptCompile" />
 </ItemGroup>
 <ItemGroup>
    <TypeScriptCompile Include="$(ProjectDir)\**\*.ts" />
 </ItemGroup>
 <Target Name="BeforeBuild">
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" IgnoreExitCode="true" />
 </Target>

لقد عملت بشكل مثالي بالنسبة لي، ولكن يرجى التعليق إذا واجهت أي مشاكل.

نصائح أخرى

هذا صحيح.كل ما تحتاجه هو هدف إنشاء ms لإنشاء ملفات .ts في ملفات .js.يعرض مثال Win8 هدف beforeBuild لاستدعاء tsc على كافة الملفات التي تنتمي إلى itemGroup TypeScriptCompile، والتي تم تعريفها على أنها $(ProjectDir)***.ts (أو جميع ملفات .ts في مشروعك).

يجب أن يعمل تكرار هذا النمط في أي مشروع msbuild، وليس فقط مشاريع Win8.

وإليك عينة مما أتحدث عنه:أضف هذا إلى أي مشروع msbuild، ويجب أن تقوم بتجميع أي ملف .ts في ملف .js المكافئ عند بدء الإنشاء.

<ItemGroup> 
   <TypeScriptCompile Include="$(ProjectDir)\**\*.ts" />
</ItemGroup>


<Target Name="TypeScriptCompile" BeforeTargets="Build">
   <Message Text="Compiling TypeScript files" />
   <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

لقد قمت بتجميع حزمة nuget التي تضيف ملف أهداف msbuild إلى مشروعك.سيتم تشغيل برنامج التحويل البرمجي tsc وتنظيف مخرجاته بحيث يمكنك النقر نقرًا مزدوجًا فوق الأخطاء الموجودة في Visual Studio والانتقال إلى الملف/السطر/العمود.

https://www.nuget.org/packages/Sholo.TypeScript.Build

تحتاج إلى تعيين إجراء البناء في نافذة الخصائص على "TypeScriptCompile" لأي شيء تريد أن يقوم tsc بتجميعه.بعد بضعة أيام من التلاعب بـ TypeScript، وجدت أن ملفات .ts التي تقوم بالمراجع يجب أن يتم تعيينها على TypeScriptCompile، ولكن لا ينبغي تعيين الملفات التي يتم الرجوع إليها فقط، بل ymmv.قد تحتاج أيضًا إلى إظهار كافة الملفات وإضافة ملف .js الأصلي.إذا كنت تريد تجميع ملفات .ts/.js/.d.ts ذات الصلة معًا، فقم بإلقاء نظرة على ملحق VsCommands.يعد سير العمل أيضًا رائعًا جدًا مع NetDemon/الامتدادات المشابهة.

إذا كنت تستخدم التجميع والتصغير, لقد قمت للتو بإصدار تطبيق IBundleTransform الذي يجمع TypeScript إلى Javascript.إنه متصل جيثب و NuGet (تثبيت حزمة TypeScriptBundleTransform).إذا لم تكن تستخدم التجميع والتصغير بعد، فالأمر يستحق المشاهدة!

تحديث:

مجرد تثبيت أساسيات الويب 2012 المكون الإضافي، سيكون لديك تجميع تلقائي عند الحفظ - لكل من .js و.min.js وعرض مقسم أنيق لرؤية مخرجات JavaScript بجوار كود TypeScript الخاص بك.


هذه طريقة بدائية كنت أستخدمها:

انقر بزر الماوس الأيمن فوق المشروع > الخصائص > إنشاء الأحداث

قم بلصق هذا في مربع PreBuild (يبني بشكل متكرر كافة ملفات .ts في المشروع):

forfiles /S /P $(ProjectDir) /m *.ts /c "cmd /c tsc @file"

لإنشاء ملف إدخال محدد:

tsc $(ProjectDir)MyScripts/myfile.ts

أنا متأكد من أن هناك طريقة أفضل للقيام بذلك.

إذا كنت تستخدم إطار عمل تحسين الويب لـ Microsoft ASP.NET (المعروف أيضًا باسم التجميع والتصغير)، ثم حاول استخدام محول الحزمة مع الوحدة المثبتة BundleTransformer.TypeScript.بالإضافة إلى تجميع كود TypeScript إلى JS، يمكنك أيضًا إنتاج تصغير لرمز JS الذي تم إنشاؤه باستخدام وحدات أخرى من Bundle Transformer: BundleTransformer.MicrosoftAjax, BundleTransformer.Yui, BundleTransformer.Closure, BundleTransformer.JsMin, BundleTransformer.UglifyJs و BundleTransformer.Packer.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top