7

我目前正在尝试设置一个 Flask Web 应用程序,并尝试使用Flask-Assets将我的 less 文件编译成缩小的 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.

我安装了lessusing $ npm install less,但由于某种原因它看起来webassets无法使用它。

当我尝试使用不同的过滤器时,webassets可以成功创建捆绑包。

谢谢!

4

1 回答 1

7

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

于 2014-02-03T18:28:16.727 回答