Yuglify压缩器无法从通过npm安装的软件包中找到二进制文件

时间:2013-01-28 17:44:55

标签: django npm django-pipeline yuglify

我有一个全新的virtualenv环境,并拥有最新的django-pipleline。

使用Closure的JS压缩工作完美,但由于节点错误,使用Yuglify的CSS压缩失败:

STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.closure.ClosureCompressor'
PIPELINE_CSS_COMPRESSOR = 'pipeline.compressors.yuglify.YuglifyCompressor'

当我尝试收集静态时:

./manage.py collectstatic

它说:

pipeline.compressors.CompressorError: /usr/bin/env: node: No such file or directory

但我已经明确安装了yuglify,即使是全球化:

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

尝试在设置中设置biney也无济于事:

PIPELINE_YUGLIFY_BINARY = '/usr/local/bin/yuglify'

我仍然得到同样的错误。为什么现在这样的问题与npm?还有什么我必须另外设置的吗?

或者有没有办法用pip安装yuglify?

非常感谢,

2 个答案:

答案 0 :(得分:23)

经过3个小时的痛苦,我找到了解决方案。

这是因为一个错误的错误发生,如果你从包管理器(npm)安装你的bin可能被称为nodejs所以你只需要像这样符号链接:

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

现在它正在运作。旧版本不会发生这种情况,它是新的东西。但至少它再次起作用。我希望这可以帮助其他人。 :)

答案 1 :(得分:0)

就我而言, uglify-js cssmin 均未安装。

所以我已经使用以下命令重新安装了它们,然后它又开始工作了。

sudo npm install -g cssmin uglify-js