Компрессор Yuglify не может найти двоичный файл из пакета, установленного через npm - программирование
Подтвердить что ты не робот

Компрессор Yuglify не может найти двоичный файл из пакета, установленного через npm

У меня есть новая виртуальная среда и у меня есть последняя django-pipleline.

JS-сжатие с Closure работает отлично, но сжатие CSS с Yuglify не выполняется из-за ошибки node:

STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.closure.ClosureCompressor'
PIPELINE_CSS_COMPRESSOR = 'pipeline.compressors.yuglify.YuglifyCompressor'

Когда я пытаюсь собрать статику:

./manage.py collectstatic

В нем говорится:

pipeline.compressors.CompressorError: /usr/bin/env: node: No such file or directory

Но я четко установил yuglify, даже глобальный:

sudo npm -g install yuglify

/usr/local/bin/yuglify -> /usr/local/lib/node_modules/yuglify/bin/yuglify
[email protected] /usr/local/lib/node_modules/yuglify 
├── [email protected]
├── [email protected]
└── [email protected]

Попытка установить параметр biney в настройках также не помогает:

PIPELINE_YUGLIFY_BINARY = '/usr/local/bin/yuglify'

Я все равно получаю ту же ошибку. Почему сейчас такие проблемы с npm? Есть ли что-то, что мне нужно настроить дополнительно?

В качестве альтернативы есть способ установить yuglify с помощью pip?

Большое спасибо,

4b9b3361

Ответ 1

Через 3 часа страданий я нашел решение.

Это происходит из-за ошибочной ошибки, если вы устанавливаете из диспетчера пакетов (npm), ваш bin может называться nodejs, поэтому вам просто нужно символически ссылаться на него следующим образом:

ln -s /usr/bin/nodejs /usr/bin/node

Теперь он работает. Это не произошло со старой версией, это нечто новое. Но, по крайней мере, он снова работает. Надеюсь, это поможет кому-то еще.:)

Ответ 2

В моем случае оба uglify-js и cssmin были как-то не установлены.

Поэтому я переустановил их снова, используя следующую команду, и затем она снова начинает работать.

sudo npm install -g cssmin uglify-js