1

我正在使用 Django-Pipeline 来缩小我的 javascript。当我将我的项目推送到 Heroku 并运行 CollectStatic 时,它给了我错误

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

但是当我手动运行 CollectStatic 时,Yuglify 运行没有问题。我无法找出问题所在。在这种情况下,我什至应该向你们展示什么代码?

4

2 回答 2

1

我对此的解决方案是在此处的代码库中添加“yuglify”部分:https ://github.com/nigma/heroku-django-cookbook

这是我的代码:

bin/install_yuglify

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

然后将以下内容添加到 bin/post_compile (大约第 23 行...)

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

你应该很高兴:)

您可以在此处查看我的代码,以供参考:https ://github.com/GK-12/rpi_csdt_community/tree/master/bin

祝你好运!

于 2014-12-30T03:37:21.650 回答
0

我设法用一个不那么痛苦的解决方案解决了这个问题。Heroku 为您提供构建包,这实际上是您的应用程序将要构建的环境。默认情况下,您有 python buildpack。这就是系统能够运行诸如 python manage.py.... 之类的命令的原因。我的解决方案如下: 1)安装 nodejs buildpack 作为第一个 buildpack

heroku buildpacks:add --index 1 heroku/nodejs

2)在与requirements.txt相同的路径中添加package.json 3)在package.json中添加yuglify的依赖项

另一种解决方案是更改压缩并使用 python 编写的压缩。

PIPELINE['CSS_COMPRESSOR']  = 'pipeline.compressors.cssmin.CSSMinCompressor'
PIPELINE['JS_COMPRESSOR'] = 'pipeline.compressors.jsmin.JSMinCompressor'

点安装 cssmin jsmin

我没有明确的意见,哪个更好 jsmin 或 yuglify。

于 2017-06-21T13:32:18.807 回答