Как установить пакеты Node для проекта Elastic Beanstalk Python 3.7, работающего на 64-разрядном Amazon Linux 2?
Я использую пакет Django под названием django-pipeline для сжатия js и css файлов.
Когда я разворачиваю свой проект, я запускаю команду Django collectstatic
из папки .ebextensions:
01_django.config:
container_commands:
...
07_collectstatic:
command: "source /var/app/venv/*/bin/activate && python3 manage.py collectstatic --noinput"
Проблема в том, что django-pipeline использует библиотеки компрессора, которые требуют Node.
Я скопировал две библиотеки (cssmin и terser) из моей node_modules
директории локально в мою static
директорию.
static
|_vendor
|___|.bin
|_____|cssmin
|_____|cssmin.cmd
|_____|terser
|_____|terser.cmd
Во-вторых, у меня есть следующий setin на Pipeline, чтобы сообщить конвейеру, где существуют двоичные файлы:
PIPELINE_CONFIG.update({
'CSSMIN_BINARY': os.path.join(BASE_DIR, "static", "vendor", ".bin", "cssmin"),
'TERSER_BINARY': os.path.join(BASE_DIR, "static", "vendor", ".bin", "terser"),
})
Ошибка
Мой вопрос
Как установить node в среде Python 3.7 Elastic Beanstalk, чтобы эта collectstatic
команда работала?
Вы можете использовать команды и следовать документации AWS. Вы можете попробовать следующее:
commands:
05_install node:
command: |
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install node