Как установить пакеты 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
Вернуться на верх