Проблема с использованием Flask-Assets для компиляции меньшего количества файлов

В настоящее время я пытаюсь настроить веб-приложение Flask и пытаюсь использовать Flask-Assets скомпилировать мои меньше файлов в минимизированный CSS.

Вот мой файл assets.py, который создает пакет.

from flask_assets import Bundle

common_css = Bundle(
    'vendor/less/theme.less',
    filters='less',
    output='static/css/common.css',
    )

Я получаю ошибку:

OSError: [Errno 2] No such file or directory

в webassets Документация для фильтра меньше, он говорит, что:

This depends on the NodeJS implementation of less, installable via npm. To use the old Ruby-based version (implemented in the 1.x Ruby gem), see Less.

...

LESS_BIN (binary)
    Path to the less executable used to compile source files. By default, the filter will attempt to run lessc via the system path.

Я установил less с помощью $ npm install less, но почему-то выглядит webassets не могу использовать это.

Когда я пытаюсь использовать разные фильтры, то webassets может успешно создать комплект.

Спасибо!

1 ответ

npm install устанавливает пакеты в текущем каталоге по умолчанию (вы должны быть в состоянии найти node_modules каталог там). У вас есть два варианта:

  1. устанавливать lessc во всем мире:

    $ npm install -g less
    

    Таким образом, веб-сайты смогут найти его самостоятельно.

  2. Укажите полный путь к lessc исполняемым:

    assets = Environment(app)
    assets.config['less_bin'] = '/path/to/lessc'
    

    Путь должен быть <some_directory>/node_modules/.bin/lessc,

Другие вопросы по тегам