Меньше Windows Node.js висит - PullRequest
       36

Меньше Windows Node.js висит

5 голосов
/ 27 января 2012

Я пытался настроить 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, который @ импортирует другие файлы .less (в том же подкаталоге). Всякий раз, когда я пытаюсь перейти на эту страницу на моем локальном сервере (используя эту меньшую конфигурацию), он зависает, и я вижу, как выполняются командный процесс и процесс node.exe.

Команда пытается запустить скрипт в файле node.js, который существует в моем временном каталоге. Я могу запустить этот файл через node.js в командной строке, но не могу загрузить его с помощью Symfony / Assetic.

Есть ли в любом случае использовать node.js, less и сборку в 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

Переопределение конфигурации dev:

assetic:
    use_controller: true

в parameters.ini:

assetic_node="C:\\Program Files (x86)\\nodejs\\node"
assetic_less_path="C:\\Users\\Matt\\AppData\\Roaming\\npm\\node_modules"

Ответы [ 3 ]

4 голосов
/ 31 октября 2012

да, используйте lessphp (на стороне сервера)

Symfony2.1. Как интегрировать сборочный фильтр Lessphp. Добавить следующее

пакет для вашего composer.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>
3 голосов
/ 21 июня 2013

Я использовал следующее, и это работает для меня. Обратите внимание, что это 'node.exe', а не просто узел.

node: "C:\\Program Files (x86)\\nodejs\\node.exe"
node_paths: ["C:\\Users\\Ben\AppData\\Roaming\\npm\\node_modules"] 
apply_to:   "\.less$"
0 голосов
/ 15 февраля 2012

Поскольку на самом деле ни у кого нет ответов, я могу только предположить, что в Symfony2 очень мало разработчиков Windows, использующих LESS и node.js.

Мое решение состояло в том, чтобы использовать lessphp, который работал нормально, как только я загрузил его в автозагрузчик.

...