我目前正在尝试设置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 filter的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
可以成功创建捆绑包。
谢谢!
答案 0 :(得分:6)
npm install
默认情况下在当前目录中安装软件包(您应该能够在那里找到node_modules
目录)。你有两个选择:
全球安装lessc
:
$ npm install -g less
这样webassets就能自己找到它。
提供lessc
可执行文件的完整路径:
assets = Environment(app)
assets.config['less_bin'] = '/path/to/lessc'
路径应为<some_directory>/node_modules/.bin/lessc
。