我正在使用 Django-Pipeline 来缩小我的 javascript。当我将我的项目推送到 Heroku 并运行 CollectStatic 时,它给了我错误
pipeline.exceptions.CompressorError: /usr/bin/env: yuglify: No such file or directory
但是当我手动运行 CollectStatic 时,Yuglify 运行没有问题。我无法找出问题所在。在这种情况下,我什至应该向你们展示什么代码?
我正在使用 Django-Pipeline 来缩小我的 javascript。当我将我的项目推送到 Heroku 并运行 CollectStatic 时,它给了我错误
pipeline.exceptions.CompressorError: /usr/bin/env: yuglify: No such file or directory
但是当我手动运行 CollectStatic 时,Yuglify 运行没有问题。我无法找出问题所在。在这种情况下,我什至应该向你们展示什么代码?
我对此的解决方案是在此处的代码库中添加“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
祝你好运!
我设法用一个不那么痛苦的解决方案解决了这个问题。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。