سؤال

لقد كنت أحاول إعداد Symfony2 على نظام التشغيل Windows حتى أتمكن من استخدام الأصول بتكلفة أقل.

لقد قمت بتثبيت Node.js لنظام التشغيل Windows (0.6.8).ثم لقد ركضت npm install less --global ووجدت أقل في C:\Users\Matt\AppData\Roaming\npm\node_modules

بقدر ما يتعلق الأمر بإعداد Symfony الخاص بي، لدي الفرع الرئيسي لـ Assetic (بسبب خطأ قرأت عنه في 1.0.2)، ولكن الإصدار القياسي v1.0.1 من AsseticBundle

بعد بعض العمل، تمكنت من الحصول على مثال أقل للملف لعرضه عبر: http://localhost/app_dev.php/css/compiled-main_part_1_boilerplate_1.css

ثم قمت بتبديل ملف .less الذي @imports ملفات .less أخرى (في نفس الدليل الفرعي).عندما أحاول الانتقال إلى تلك الصفحة على الخادم المحلي الخاص بي (باستخدام هذا التكوين الأقل)، يتم تعليقها ويمكنني رؤية عملية الأمر وعملية Node.exe قيد التشغيل.

يحاول الأمر تشغيل برنامج نصي في Node.js الموجود في الدليل المؤقت الخاص بي.يمكنني تشغيل هذا الملف من خلال Node.js في موجه الأوامر بشكل جيد، لكن لا يمكنني تحميله باستخدام Symfony/Assetic.

هل هناك أي طريقة لاستخدام Node.js وأقل وAstic على نظام التشغيل Windows؟

فيما يلي أقسام ملف التكوين ذات الصلة:

# Assetic Configuration
assetic:
    debug:           %kernel.debug%
    use_controller: false
    bundles: [FeedStreamMainBundle]
    # java: /usr/bin/java
    filters:
        cssrewrite: ~
        less:
            node: %assetic_node%
            node_paths: [%assetic_less_path%]
        yui_js:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor.jar"
        yui_css:
            jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
        # closure:
        #     jar: %kernel.root_dir%/java/compiler.jar

تجاوز تكوين التطوير:

assetic:
    use_controller: true

في المعلمات.ini:

assetic_node="C:\\Program Files (x86)\\nodejs\\node"
assetic_less_path="C:\\Users\\Matt\\AppData\\Roaming\\npm\\node_modules"
هل كانت مفيدة؟

المحلول 3

نظرًا لعدم وجود أي إجابات حقًا، لا يمكنني إلا أن أفترض أن هناك عددًا قليلاً جدًا من مطوري Windows يستخدمون LESS وnode.js في Symfony2.

كان الحل الذي توصلت إليه هو استخدام lessphp والذي كان يعمل بشكل جيد بمجرد إدخاله في أداة التحميل التلقائي.

نصائح أخرى

نعم، استخدم com.lessphp (جانب الخادم)

سيمفوني2.1.كيفية دمج فلتر lessphp الأصولي.أضف ما يلي

الحزمة إلى الملحن.json الخاص بك:

"require": {
    ...
    "leafo/lessphp": "dev-master",
    ...
}

قم بتشغيل تحديث PHP Composer.Phar

وقم بتحديث ملف config.yml الخاص بك

#...
assetic:
    #...
    filters:
        lessphp:
            file: %kernel.root_dir%/../vendor/leafo/lessphp/lessc.inc.php
            apply_to: "\.less$"

أو استخدم less.js (جانب العميل)

<link rel="stylesheet/less" type="text/css" href="styles.less">
<script src="less.js" type="text/javascript"></script>

لقد استخدمت ما يلي وهذا يعمل بالنسبة لي.لاحظ أنه "node.exe" وليس العقدة فقط.

node: "C:\\Program Files (x86)\\nodejs\\node.exe"
node_paths: ["C:\\Users\\Ben\AppData\\Roaming\\npm\\node_modules"] 
apply_to:   "\.less$"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top