使用Flask-Assets编译较少文件的问题

时间:2014-02-02 06:32:41

标签: python flask less webassets 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

less filterwebassets文档中,它说:

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 个答案:

答案 0 :(得分:6)

npm install默认情况下在当前目录中安装软件包(您应该能够在那里找到node_modules目录)。你有两个选择:

  1. 全球安装lessc

    $ npm install -g less
    

    这样webassets就能自己找到它。

  2. 提供lessc可执行文件的完整路径:

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

    路径应为<some_directory>/node_modules/.bin/lessc