Развертывание Heroku, в Yuglify нет такого файла с конвейером Django
Пытается запустить collectstatic при развертывании, но сталкивается со следующей ошибкой:
pipe.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 не в моем файле require.txt, а в моем package.json.
1 ответ
Я столкнулся с той же проблемой и в итоге использовал пользовательский пакет сборки, такой как этот, и написал скрипт bash для установки узла и yuglify: https://github.com/heroku/heroku-buildpack-python
После установки пакета сборки я создал несколько скриптов bash для установки узла и yuglify. В buildpack есть хуки для вызова этих сценариев посткомпиляции. Вот хороший пример того, как это сделать, которому я следовал: https://github.com/nigma/heroku-django-cookbook
Эти скрипты находятся в папке bin в вашей корневой папке.
В скрипт post_compile я добавил скрипт для установки yuglify.
скрипт post_compile
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
#!/usr/bin/env bash
set -eo pipefail
npm install -g yuglify
Если это не сработает, вы можете взглянуть на этот пост: Компрессор Yuglify не может найти двоичный файл из пакета, установленного через npm.