如何将libsass配置变量传递到flask_assets包中?

时间:2017-08-10 01:38:32

标签: python flask libsass flask-assets webassets

我的目标是通过LIBSASS_STYLE="expanded"设置flask_assets.Bundlewebassets libsass documentation说我可以做到,但没有说明怎么做。

我的基本app控制器如下所示。

from flask import Flask, render_template
from flask_assets import Environment, Bundle

app = Flask(__name__)

# ... Typical flask controller stuff

if __name__ == "__main__": 
    assets = Environment(app)

    css = Bundle(
        'sass/*.scss',         # input scss files
        filters='libsass',     # to be compiled by libsass
        output='css/style.css' # and outputed to style.css
    )

    assets.register("asset_css", css)

    app.run(debug=True)

这会输出一个有效的css文件(这很棒)但不是我想要的格式,因为我根本不知道在哪里可以删除任何libsass选项。

非常欢迎任何有关此问题的帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要显式实例化libsass过滤器以向其传递选项

from flask_assets import Bundle
from webassets.filter import get_filter

libsass = get_filter(
    'libsass',
    as_output=True,
    style='compressed',
)

css = Bundle(
    'sass/*.scss',
    filters=(libsass),
    output='css/style.css'
)