Меньше зависаний Windows Node.js
Вопрос
Я пытался настроить 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$"