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

Hou*_*man 17 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'
Run Code Online (Sandbox Code Playgroud)

当我尝试收集静态时:

./manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)

它说:

pipeline.compressors.CompressorError: /usr/bin/env: node: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但我已经明确安装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
Run Code Online (Sandbox Code Playgroud)

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

PIPELINE_YUGLIFY_BINARY = '/usr/local/bin/yuglify'
Run Code Online (Sandbox Code Playgroud)

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

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

非常感谢,

Hou*_*man 25

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

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

ln -s /usr/bin/nodejs /usr/bin/node
Run Code Online (Sandbox Code Playgroud)

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