2

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.

user3084860
  • 421
  • 5
  • 19

1 Answers1

3

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

Community
  • 1
  • 1
Cliff F
  • 381
  • 6
  • 14
  • You're better off using the multi-build pack and adding nodejs dependencies in `package.json`. [See the answer here](http://stackoverflow.com/a/21470232/1591957) – Rebs Dec 15 '15 at 02:53