Вопрос

Я пытался настроить Symfony2 в Windows, чтобы можно было использовать Assetic с меньшими затратами.

Я установил 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, less и assetic в 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, который работал нормально, как только я поместил его в автозагрузчик.

Другие советы

да, используй Меньшеphp (серверная часть)

Симфония2.1.Как интегрировать фильтр asticlesslessphp.Добавьте следующее

пакет в ваш композитор.json:

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

Запустите обновление php композитора.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.

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