symfony2. 3 Настройка assetic с меньшим количеством
Я использую Symfony " 2.3.* "и я пытаюсь сделать assetic менее работающим фильтром. Я делаю все это в среде "dev".
Когда я выдаю config:dump-reference assetic, я получаю следующий вывод: 
assetic:
    debug:                %kernel.debug%
    use_controller:
        enabled:              %kernel.debug%
        profiler:             false
    read_from:            %kernel.root_dir%/../web
    write_to:             %assetic.read_from%
    java:                 /usr/bin/java
    node:                 /usr/bin/node
    node_paths:           []
    ruby:                 /usr/bin/ruby
    sass:                 /usr/bin/sass
    variables:
        # Prototype
        name:                 []
    bundles:
        # Defaults:
        - FrameworkBundle
        - SecurityBundle
        - TwigBundle
        - MonologBundle
        - SwiftmailerBundle
        - AsseticBundle
        - DoctrineBundle
        - SensioFrameworkExtraBundle
        - FOSUserBundle
        - JMSSerializerBundle
        - YuccaPrerenderBundle
        - WebProfilerBundle
        - SensioDistributionBundle
        - SensioGeneratorBundle
    assets:
        # Prototype
        name:
            inputs:               []
            filters:              []
            options:
                # Prototype
                name:                 []
    filters:
        # Prototype
        name:                 []
    twig:
        functions:
            # Prototype
            name:                 []
Итак, мой конфиг выглядит так:
assetic:
    debug:          %kernel.debug%
    use_controller: false
    bundles:
      - PlastoriaGiftoFrontBundle
    #java: /usr/bin/java
    node: "/usr/bin/nodejs"
    node_paths: [ "/home/webadmin/websites/gifto/node_modules" ]
    filters:
        cssrewrite: ~
        less: ~
        closure:
            jar: %kernel.root_dir%/Resources/java/compiler.jar
        yui_css:
            jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.8.jar
Чтобы проверить, что это работает, я открываю консоль Symfony и выпускаю cache:clear
Затем я иду в кэш dir (app/cache) и делаю rm -rf *.
После того, как я вернусь в консоль Symfony и запущу эти две команды: 
assets:install
assetic:dump
И меня приветствуют: следующее сообщение:
Сброс всех активов dev. Включен режим отладки. 13: 51: 22 [файл+] / home/webadmin/websites/gifto/app/../web / css / ac28136.CSS [AsseticExceptionFilterException] произошла ошибка во время выполнения: '/usr/bin/nodejs ''/tmp / assetic_lessjHtxDR ' вывод ошибки: модуль.js: 340 бросить подстраховаться; ^ Ошибка: не удается найти модуль "меньше" на работе.Модуль._resolveFilename (модуль.ИС: 338: 15)... (усечено)
В конфигурация для двоичного узла учитывается: An error occurred while running: '/usr/bin/nodejs' 
По умолчанию используется значение /usr/bin/nodejs.
npm ls, я вижу, что он правильно установлен.
Я также запустилnodejs  в каталоге приложений и сделал require('less'), и он работал без ошибок.
Как правильно настроить assetic с помощью nodejs ?
4 ответа:
Добавить
assetic: node_paths: [/usr/lib/node_modules/]В вашей конфигурации.файл yml.
/usr/lib/node_modules/работает на Ubuntu.
Я использовал Centos с установкой cPanel. Я совершил ошибку, не поняв, что при запуске npm install less он будет находиться в каталоге, из которого я его вызвал, который в моем случае был корневым каталогом моего проекта.
В каком бы каталоге вы ни находились, когда устанавливали меньше, папка node_modules должна быть там. Однако это неправильное место для него.
Предположим, что вы находитесь в том же каталоге, из которого вы запустили установку... Выполните эту команду, чтобы переместить его в нужное место. расположение
mv node_modules /usr/local/lib/node_modulesЗатем вам нужно добавить строку в вашу конфигурацию.yml
assetic: debug: '%kernel.debug%' use_controller: '%kernel.debug%' filters: cssrewrite: ~ uglifyjs2: # the path to the uglifyjs executable bin: /usr/bin/uglifyjs uglifycss: bin: /usr/bin/uglifycss less: node_paths: [/usr/local/lib/node_modules/] bin: /usr/bin/lessВ моем случае я использую много других фильтров, но ключ здесь-это
node_paths: [/usr/local/lib/node_modules/], Убедитесь, что у вас есть это. Обратите внимание, что теперь задано расположение, к которому скрипт может получить глобальный доступ.Теперь это будет работать. Надеюсь, это кому-то поможет.