Heroku部署,使用Djangopipe道将Yuglify没有这样的文件

尝试在部署失败时运行collectstatic,但遇到以下错误:

pipeline.exceptions.CompressorError:/ usr / bin / env:yuglify:没有这样的文件或目录

当我手动运行collectstatic时,一切都按预期工作:

后处理'样式/ omnibase-v1.css'作为'stylesheets / omnibase-v1.css'后处理'js / omnijs-v1.js'为'js / omnijs-v1.js'

我已经在全球安装了Yuglify。 如果我运行“heroku run yuglify”,界面popup并按预期运行。 我只是遇到了部署问题。 我正在用NodeJS和Python使用multibuildpack。 任何帮助?

我的包,以防万一:

{ "author": "One Who Sighs", "name": "sadasd", "description": "sadasd Dependencies", "version": "0.0.0", "homepage": "http://sxaxsaca.herokuapp.com/", "repository": { "url": "https://github.com/heroku/heroku-buildpack-nodejs" }, "dependencies": { "yuglify": "~0.1.4" }, "engines": { "node": "0.10.x" } } 

应该提一下,Yuglify不在我的requirements.txt中,只是在我的package.json中。

我遇到了同样的问题,并最终使用这样的自定义buildpack和编写一个bash脚本来安装节点和yuglify: https : //github.com/heroku/heroku-buildpack-python

在设置buildpack之后,我创build了几个bash脚本来安装node和yuglify。 buildpack有钩子来调用这些后编译脚本。 下面是一个很好的例子,我如何做到这一点: https : //github.com/nigma/heroku-django-cookbook

这些脚本放在根文件夹中的bin下面。

在post_compile脚本中,我添加了一个脚本来安装yuglify。

post_compile脚本

 if [ -f bin/install_nodejs ]; then echo "-----> Running install_nodejs" chmod +x bin/install_nodejs bin/install_nodejs if [ -f bin/install_yuglify ]; then echo "-----> Running install_yuglify" chmod +x bin/install_yuglify bin/install_yuglify fi fi 

install_yuglify脚本

  #!/usr/bin/env bash set -eo pipefail npm install -g yuglify 

如果这不起作用,你可以看看这篇文章: Yuglify压缩机无法find二进制从安装包通过NPM