symfony2.3 configura assetic con menos

Estoy usando Symfony “2.3. *” E bash hacer que Assetic funcione menos el filtro. Hago todo esto en el entorno “dev”.

Cuando config:dump-reference assetic el config:dump-reference assetic obtengo el siguiente resultado:

 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: [] 

Por lo tanto, mi configuración se ve como:

 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 

Para probar que funciona, abro la Consola de Symfony y emito cache:clear Luego voy al directorio de caché (app / caché) y hago rm -rf * . Después de volver a la consola de Symfony y lanzar estos dos comandos:

 assets:install assetic:dump 

Y me saludan con el siguiente mensaje:

Volcar todos los activos de desarrollo. El modo de depuración está activado. 13:51:22 [archivo +] /home/webadmin/websites/gifto/app/../web/css/ac28136.css [Assetic \ Exception \ FilterException] Ocurrió un error al ejecutar: ‘/ usr / bin / nodejs’ Salida de error ‘/ tmp / assetic_lessjHtxDR’: module.js: 340 throw err; ^ Error: no se puede encontrar el módulo ‘menos’ en Function.Module._resolveFilename (module.js: 338: 15) … (truncado)

La configuración para el nodo binario se tiene en cuenta: An error occurred while running: '/usr/bin/nodejs'

Por defecto, el valor es /usr/bin/nodejs .

No puedo entender lo que está mal. Instalé el módulo de nodo “menos” en la aplicación usando npm y cuando npm ls , puedo ver que está correctamente instalado.

También lancé nodejs en el directorio de la aplicación e hice un require('less') y funcionó sin error.

¿Cuál es la forma correcta de configurar assetic con nodejs?

Para usuarios de mac esto es

 node: "/usr/local/bin/node" node_paths: [/usr/local/lib/node_modules/] 

Añadir

 assetic: node_paths: [/usr/lib/node_modules/] 

en su archivo config.yml

/usr/lib/node_modules/ trabaja para Ubuntu.

Estaba usando Centos con una instalación de cPanel. Cometí el error de no darme cuenta cuando ejecutas npm install menos de lo que sería en el directorio desde el que llamé, que en mi caso era el directorio raíz de mi proyecto.

Cualquiera que sea el directorio en el que estaba cuando instaló menos la carpeta node_modules debería estar allí. Este es el lugar equivocado para ello sin embargo.

Suponiendo que se encuentre en el mismo directorio desde el que ejecutó la instalación … Ejecute este comando para moverlo a la ubicación correcta

 mv node_modules /usr/local/lib/node_modules 

Entonces necesitas agregar una línea a tu config.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 

En mi caso, estoy usando muchos otros filtros, pero la clave aquí son las node_paths: [/usr/local/lib/node_modules/] , asegúrate de tener eso. Observe que ahora está establecido en una ubicación a la que el script puede acceder globalmente.

Ahora funcionará. Espero que esto ayude a alguien.

Encontró,

Ingresé en el servidor como root (Sí, lo sé, mala práctica) y luego su webadmin .

El truco es realmente iniciar sesión como webadmin o su webadmin -l .

Lo probé y fue el problema.

Intereting Posts