尝试在离地时运行CollectStatic,但遇到以下错误:
pipeline.exceptions.compressorerror:/usr/bin/env:yuglify:没有
文件或目录
当我手动运行CollectStatic时,一切都按预期工作:
后期处理的'stylesheets/omnibase-v1.css'为
'stylesheets/omnibase-v1.css'后处理'js/omnijs-v1.js'为
'js/omnijs-v1.js'
我已经在全球安装了yuglify。如果我运行“heroku run yuglify”,界面会弹出并按预期运行。我只是遇到了部署问题。我使用的是multibuildpack,有nodejs和python。有什么帮助吗?
我的包裹,以防万一:

{
  "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不在my requirements.txt中,而在my package.json中。

最佳答案

我遇到了同样的问题,最终使用了这样的自定义构建包,并编写了bash脚本来安装node和yuglify:
https://github.com/heroku/heroku-buildpack-python
在设置了buildpack之后,我创建了一些bash脚本来安装node和yuglify。buildpack有钩子来调用这些编译后脚本。下面是一个很好的例子,我是这么做的:
https://github.com/nigma/heroku-django-cookbook
这些脚本放在根文件夹的bin下。
在post_compile脚本中,我添加了一个脚本来安装yuglify。
后期编译脚本

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

安装yuglify脚本
  #!/usr/bin/env bash
    set -eo pipefail

    npm install -g yuglify

如果这不起作用,你可以看看这个帖子:
Yuglify compressor can't find binary from package installed through npm

10-07 18:39