简体   繁体   中英

Heroku Deployment, Yuglify No Such File with Django pipeline

Trying to run collectstatic on deloyment, but running into the following error:

pipeline.exceptions.CompressorError: /usr/bin/env: yuglify: No such file or directory

When I run collectstatic manually, everything works as expected:

Post-processed 'stylesheets/omnibase-v1.css' as 'stylesheets/omnibase-v1.css' Post-processed 'js/omnijs-v1.js' as 'js/omnijs-v1.js'

I've installed Yuglify globally. If I run 'heroku run yuglify', the interface pops up and runs as expected. I'm only running into an issue with deployment. I'm using the multibuildpack, with NodeJS and Python. Any help?

My package, just in case:

{
  "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"
  }
}

Should maybe mention that Yuglify is not in my requirements.txt, just in my package.json.

I ran into the same problem and ended up using a custom buildpack such as this and writing a bash script to install node and yuglify: https://github.com/heroku/heroku-buildpack-python

After setting the buildpack, I created a few bash scripts to install node and yuglify. the buildpack has hooks to call these post compile scripts. Here's a good example how to do this which I followed: https://github.com/nigma/heroku-django-cookbook

These scripts are placed under bin in your root folder.

In the post_compile script, I added a script to install yuglify.

post_compile script

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 script

  #!/usr/bin/env bash
    set -eo pipefail

    npm install -g yuglify

If that doesn't work, you can have a look at this post: Yuglify compressor can't find binary from package installed through npm

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM