2

我正在使用Flask-Assets在我的 Flask 应用程序中使用webassets ,并且在创建bundles时遇到了该选项的问题。depends

就我而言,我正在从以下目录结构中捆绑 LESS 文件:

/static
 \_ /css
     \_ /bootstrap
     |   \_ bootstrap.less // This file @imports variables.less and custom.less
     |   \_ variables.less
     \_ custom.less

我的捆绑包如下所示:

css = Bundle(
    "css/bootstrap/bootstrap.less",
    filters="less, cssmin",
    output="dist/base.css",
    depends="**/*.less"
)

bootstrap.less使用这些设置,只要对or custom.lessbut NOT进行更改,就会重建 LESS 文件variables.less

据我了解,用于该depends选项的表达式是一个glob指令,使用上面的指令应该简单地递归遍历所有目录并获取任何 LESS 文件。但是,它似乎永远不会接受对variables.less.

在尝试解决此问题时,我尝试了以下选项depends

  • "*.less"- 不拾取任何东西(因为它在项目目录的根目录中搜索,我相信,无论如何都没有 LESS 文件)
  • "**/*.less, myproject/static/css/bootstrap/variables.less"- 根本不接受任何文件中的任何更改。
  • "**/*.less, myproject/static/css/bootstrap/variables.less"- 同上一个。
  • "myproject/static/css/bootstrap/variables.less"- 奇怪的是,这会影响对variables.less和任何其他 LESS 文件(例如 custom.less)所做的更改。

本质上,最后一项是我的问题的“解决方案”,但我不知道为什么它会这样工作,所以它不适合我。任何人都可以在这里提供正确方向的解释或推动吗?

谢谢!

4

2 回答 2

3

**这里的问题是模块中不支持递归 glob glob(但是;请参阅issue 13968)。

以下是我在我的一个项目中的设置方式(不确定这是否适合您的需求):

less/
├── bootstrap/
│   ├── bootstrap.less
│   ├── variables.less
│   └── ...
└── style.less        # @import "bootstrap/bootstrap.less";

捆绑配置:

css = Bundle(
    "less/style.less",
    filters="less, cssmin",
    output="css/all.css",
    depends="less/bootstrap/*.less"
)
于 2013-08-17T09:37:37.270 回答
3

我通过安装glob2模块解决了这个问题。然后我depends='**/*.scss'开始按预期工作,观察嵌套目录和顶层目录的变化。

于 2015-12-18T13:30:27.213 回答