django - El compresor Yuglify no puede encontrar el binario del paquete instalado a través de npm
django-pipeline (2)
Tengo un nuevo entorno virtualenv y tengo el último django-pipleline.
La compresión JS con cierre funciona perfectamente, pero la compresión CSS con Yuglify falla, debido a un error de nodo:
STATICFILES_STORAGE = ''pipeline.storage.PipelineCachedStorage''
PIPELINE_JS_COMPRESSOR = ''pipeline.compressors.closure.ClosureCompressor''
PIPELINE_CSS_COMPRESSOR = ''pipeline.compressors.yuglify.YuglifyCompressor''
Cuando intento recoger la estática:
./manage.py collectstatic
Dice:
pipeline.compressors.CompressorError: /usr/bin/env: node: No such file or directory
Pero claramente he instalado yuglify incluso como global:
sudo npm -g install yuglify
/usr/local/bin/yuglify -> /usr/local/lib/node_modules/yuglify/bin/yuglify
[email protected] /usr/local/lib/node_modules/yuglify
├── [email protected]
├── [email protected]
└── [email protected]
Tratar de establecer la configuración de Biney tampoco ayuda:
PIPELINE_YUGLIFY_BINARY = ''/usr/local/bin/yuglify''
Todavía me sale el mismo error. ¿Por qué ahora tales problemas con npm? ¿Hay algo que tengo que configurar además?
Alternativamente, ¿hay una manera de instalar yuglify con pip?
Muchas gracias,
Después de 3 horas de sufrimiento, he encontrado la solución.
Esto sucede debido a un error de nombre incorrecto, si instala desde un administrador de paquetes (npm) su bin puede llamarse nodejs, por lo que solo necesita un enlace simbólico como este:
ln -s /usr/bin/nodejs /usr/bin/node
Ahora está funcionando. Esto no sucedió con la versión anterior, es algo nuevo. Pero al menos está funcionando de nuevo. Espero que esto ayude a alguien más por ahí. :)
En mi caso, tanto uglify-js como cssmin no estaban instalados de alguna manera.
Así que los reinstalé nuevamente usando el siguiente comando y luego comienza a funcionar nuevamente.
sudo npm install -g cssmin uglify-js