Yuglify compressor can't find binary from package installed through npm

django, django-pipeline, npm, yuglify

Solution

After 3 hours of suffering, I have found the solution.

This is happening because of a misnaming error, if you install from a package manager (npm) your bin may be called nodejs so you just need to symlink it like this:

ln -s /usr/bin/nodejs /usr/bin/node

Now it is working. This didn't happen with the older version, its is something new. But at least it is working again. I hope this helps someone else out there. :)

Problem

I have a fresh virtualenv environment and have got the latest django-pipleline. The JS compression with Closure works perfect, but CSS compression with Yuglify fails, due a node error: ``` STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage' PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.closure.ClosureCompressor' PIPELINE_CSS_COMPRESSOR = 'pipeline.compressors.yuglify.YuglifyCompressor' ``` When I try to collect the static: ``` ./manage.py collectstatic ``` It says: ``` pipeline.compressors.CompressorError: /usr/bin/env: node: No such file or directory ``` But I have clearly installed yuglify even as global: ``` sudo npm -g install yuglify /usr/local/bin/yuglify -> /usr/local/lib/node_modules/yuglify/bin/yuglify yuglify@0.1.2 /usr/local/lib/node_modules/yuglify ├── uglify-js@1.3.4 ├── ycssmin@1.0.1 └── nopt@2.1.1 ``` Trying to set the biney in settings doesn't help either: ``` PIPELINE_YUGLIFY_BINARY = '/usr/local/bin/yuglify' ``` I still get the same error. Why now such problems with npm? Is there something I have to setup additionally? Alternatively is there a way to install yuglify with pip? Many Thanks,

Original source