سؤال

أريد أن أكتب httphandler يقوم بتجميع كود Coffescript على أساس النقل ويرسل رمز JavaScript الناتج. لقد جربت MS [JScript] [1] و IronJs دون نجاح. لا أريد استخدام [وحيد القرن] [2] لأن تبعية Java ستجعل من الصعب للغاية توزيعها.

كيف يمكن تجميع القهوة من .NET؟

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

المحلول

Coffescript-dotnet

أداة سطر الأوامر لتجميع CoffeScript. يتضمن مراقب نظام الملفات لإعادة ترجمة Coffescripts تلقائيًا عند تغييرها. يعادل تقريبا حزمة عقدة القهوة الناتجة لـ Linux / Mac.

القهوة

يتضمن أداة سطر الأوامر مماثلة لـ Coffescript-Dotnet بالإضافة إلى معالج HTTP الذي يجمع Coffescripts عند طلبه من موقع ASP.NET.

Sassandcoffeescript

مكتبة لـ ASP.NET MVC التي تجمع ملفات Sass و Coffescript عند الطلب. يدعم أيضا التصفيف والمزيج.

تجميع يدويًا مع IronJs

IronJS هو مترجم .NET JavaScript الذي يمكنه تحميل مترجم Coffescript بنجاح وتجميع القهوة.

تجميع يدويًا مع Node.js

احصل على ال ثنائيات العقدة وأضف دليل bin إلى طريقك. اكتب Node.js البرنامج النصي لتحميل مترجم Coffescript وملفات CoffeScript وحفظ JavaScript المترجمة.

نصائح أخرى

يتم دعم Coffescript الآن بالكامل بواسطة Chirpy:http://chirpy.codeplex.com/

لقد قلت على وجه التحديد أنك تريد كتابة برنامج التحويل البرمجي لوقت التشغيل ، لذلك قد لا يكون هذا بالضبط ما تبحث عنه ، ولكن إذا كانت النقطة الرئيسية هي أن يكون لها طريقة لإنشاء نتيجة JavaScript ، Mindscape Web Workbench مثيرة للاهتمام. إنه امتداد مجاني لـ Visual Studio.net 2010 ومتوفر في مدير الإرشاد. إنه يمنح Intellisense ، بناء الجملة وتجميعه إلى JS أثناء الكتابة. لقد بدأت للتو في استخدامه ولكن يبدو واعداً. يتحدث سكوت هانسلمان عن ذلك هنا. كما يدعم أقل وساس.

لقد تمكنت من تجميع CoffeScript من .NET باستخدام IKVM و JCoffescript و Rhino. كان الأمر واضحًا ، إلا أن حمولة مُنشئ JCoffeescriptcompiler الزائدة بدون معلمات لم تنجح. ركض موافق مع java.util.collections.empty_list كمعلمة.

هكذا فعلت ذلك:

  1. قم بتنزيل IKVM و JCoffeescript و Rhino.
  2. قم بتشغيل IKVMC ضد JS.JAR ، إنشاء JS.DLL.
  3. قم بتشغيل IKVMC ضد جرة JCoffeescript.
  4. أضف إشارة إلى JCoffescript DLL في Visual Studio. قد تكون هناك حاجة إلى مزيد من المراجع ، ولكن سيتم تحذيرك من هؤلاء.
  5. قم بتشغيل org.jcoffeescript.jcoffescriptcompiler (java.util.collections.empty_list). compile () في الكود الخاص بك.

تتمثل الخطوة التالية في إنشاء مهمة بناء و/أو معالج HTTP.

تحقق من الجديد Coffescript-dotnet المشروع الذي يستخدم الجوراسي تنفيذ JavaScript.

نظرًا لأن برنامج CoffeScript Compiler يعمل الآن على Internet Explorer ، بعد بضع تعديلات حديثة ، يجب أن يكون من الجيد الذهاب إلى النكهات الأخرى من JavaScript أيضًا. حاول بما في ذلك extras/coffee-script.js من أحدث إصدار ، ويجب أن تكون على ما يرام CoffeeScript.compile(code).

حاولت تشغيل المجمعة extras/coffee-script.js من خلال مضيف Script المستند إلى Windows (أو فقط wscript) ولم يبلغ عن أي مشكلات. ثم أضفت هذا الخط:

WScript.Echo(CoffeeScript.compile('a: 1'));

في نهاية الملف وقم بتشغيله من خلال wscript مرة أخرى وطبعت جافا سكريبت الناتجة بشكل صحيح.

هل تستخدم كائنات كوم؟ هل يمكنك مشاركة المزيد من التعليمات البرمجية المسؤولة عن تهيئة مرجع كائن Mscript؟

Coffescript في Visual Studio 2010

إنه شوكة Chirpy (Chirpy هي أداة للهروب والتصحيح والتحقق من التحقق

"حسنًا ، أعتقد أنني حصلت على العمل على شوكة بلدي ، استنادًا إلى عمل الشعوب الأخرى. تحقق من ذلك:http://chirpy.codeplex.com/sourcecontrol/network/forks/domenic/coffeescriptfixes"

من http://chirpy.codeplex.com/workitem/48

ليس لدي إجابة مباشرة ، (آمل أن تجد واحدة) ، ولكن ربما ألقِ نظرة على ما يلي لمعرفة كيف يمكن القيام بذلك.

يدعم IronJS الآن CoffeScript وهو أسرع بشكل عام من محركات .NET JS الأخرى:

لدي منشور مدونة حول توصيل الاثنين معًا هنا:
http://otac0n.com/blog/2011/06/29/coffeedemo-a-simple-demo-of-ironjs-using-coffescript.aspx

المحرر الرئيسي الخاص بي هو مقابل 2010 وأنا أحب ملحق Workbench. إنه لأمر رائع أن يتم تجميعها التلقائي إلى JS في كل مرة تضغط فيها على ملف .coffee الخاص بك ، كما يقدم لك Sass الذي قرأته ولكن لم يسبق له مثيل.

إنها توفر إصدارًا مدفوعًا إلى ذلك من شأنه أن يتقلص/ملفات JS و CSS الخاصة بك أيضًا ، نظرًا لأن ملفاتك المصدر الخاصة بك على أي حال.

أشجع جميع المستخدمين مقابل المضي قدمًا وتثبيت هذا خاصة إذا قمت بتشغيل مقابل 2010.

الضربة الوحيدة ، وشخص ما ، يرجى تصحيحني أو تنويرني ، هو أنه مع. Coffee Syntax ، لم يتم تسليط الضوء على الطريقة التي يقول بها HTML ، JS ، C#. قد يكون ذلك لأنني أستخدم نظام الألوان من http://studiostyl.es/ وللسل http://studiostyl.es/schemes/coffee- يشارك فقط اسم القهوة لا يوجد بناء جملة خاص لدعم Coffescript الذي أدركه. ولكن لا يوجد سبب لعدم البدء في استخدام Addin Workbench اليوم!

حسنًا ، مطالبات موقع Workbench: تسليط الضوء على بناء الجملة ، مرة أخرى ، ربما يكون Studiostyle.es الذي اخترته.

أعلم أن هذا قديم لكنني جئت إلى هنا للإجابة على سؤال مشابه جدًا: كيف يمكنني الحصول على Coffescript لتجميع باستخدام Visual Studio 2012 Express؟ لاحظ أن إصدار Express المجاني لا يسمح بأي ملحقات حتى لا أتمكن من الاستمرار في استخدام Mindscape Workbench التمديد الذي خدمني جيدًا لبعض الوقت.

اتضح أنه سهل للغاية. فقط استخدم nuget لتثبيت ملف الجوراسي القومي حزمة ووقف تذهب.

تتمثل إحدى ميزة استخدام هذه الحزمة على Workbench في Mindscape في أنه يمكنك الرجوع إلى قهوتك مباشرة من علامات البرنامج النصي في HTML. إنه يعزز ويختفي JS المترجمة حتى تقوم فقط بالعمل إذا تغير ملف القهوة المطلوب.

<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="home.coffee"></script>
</head>

يتيح لك ANDSCAPE Workbench تجميع ملفات CaffeScript التي تعد مفيدة للغاية لزيادة المعيار. يمكنك أيضًا القيام بذلك باستخدام Jurassic Coffee عن طريق استخدام #= require بيان لتشمل ملفات وحدة القهوة الأخرى ، على سبيل المثال:

#= require Classes\GridWrapper.coffee
class UsersGrid
  constructor:->
     @grid = new GridWrapper()

أعتقد وجود #= require يعد Staement في ملف القهوة أنظفًا وأكثر وضوحًا من نهج Workbench Mindscape ، والذي يخفي كل هذا خلف واجهته حتى تنسى بسهولة التبعيات التي لديك.

ملحوظةهناك مسكات واحدة محتملة. سيتم وضع Nuget Installer في إدخال httphandler في الويب الخاص بك.

لذلك قد ترى الخطأ التالي:

تم اكتشاف إعداد ASP.NET لا ينطبق في وضع خط الأنابيب المدمج المتكامل.

لإصلاح هذا فقط قم بإزالة المعالج الموضح أدناه.

<system.web>
  //other stuff

  <httpHandlers>
    <add type="JurassicCoffee.Web.JurassicCoffeeHttpHandler,JurassicCoffee" validate="false" path="*.coffee" verb="*" />
  </httpHandlers>

</system.web>

يمكنك ببساطة كتابة منفذ منه إلى C#. لقد قمت بنقل Jison إلى C# (وهو المشروع الأساسي الذي يجعل Coffescript تشغيل). أعتقد أن الأمر قد يكون مختلفًا بعض الشيء ، لكن كلا من جيسون المحلفين يعملان بنفس الشيء.

لم أطلبها من قبل بنية جيسون الرئيسية ، لكنني سأفعل ذلك قريبًا.

https://github.com/robertleeplummerjr

بدلاً من القصف إلى Cscript ، يمكنك التخلص من Node.js (فيما يلي ثنائيات نوافذ قائمة بذاتها)

لقد حاولت تجميع الإضافات/coffee-script.js ملف ، غير معدّل ، إلى jsc, ، ال jscript.net برنامج التحويل البرمجي لـ .NET ، وحصلت على العديد من الأخطاء. إليكم تلك الجديرة بالملاحظة:

  • "المتطلبات" هي كلمة محفوظة جديدة ويجب عدم استخدامها كمعرف
  • "ضمان" كلمة محفوظة جديدة ويجب عدم استخدامها كمعرف
  • كائنات النوع "كائن عالمي" ليس لديها مثل هذا العضو

كانت الأخطاء الأخرى ناتجة عن الأخطاء المذكورة أعلاه.

قد ترغب أيضًا في الاطلاع على Jurassic-Coffee ، وهو أيضًا مترجم للنصوص القهوة يدير المترجم الأصلي في Jurassic.

يتميز بنمط المسننة "#= require file.coffee" أو "#= طلب file.js"يمكن استخدام wich للحفاظ على ملفات .coffee معيارية ومجمعة مباشرة قبل التجميع وكذلك تضمين ملفات .js.

إنه يضم httphandler مع مراقبي الملفات لملفات .js و .coffee التي تتتبع ما. يجب إعادة تنسيق ملفات .coffee والتمرير إلى ملفات *.js للباقي.

Jurassic-Coffee متاح أيضًا كحزمة nuget

https://github.com/creamdog/jurassiccoffee

لقد قمت بعمل httphandler يستخدم مضيف Windows Script خلف الكواليس: https://github.com/duncansmart/lesscoffee ويعمل بشكل رائع (يجمع أيضًا *.أقل الملفات).

إنه على Nuget: http://nuget.org/list/packages/lesscoffee

يعتمد على هذا الغلاف البسيط: https://github.com/duncansmart/coffescript-windows

كتبت قذيفة علنية باستخدام V8.

https://github.com/mattn/coffee-script-v8

هذا العمل كملف واحد قابل للتنفيذ. (لا تستخدم الملفات الخارجية) لا يمكن استخدامها للمطالبة (). ولكن يكفي لتعلم القهوة.

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