3

我们的应用程序使用了 amd 加载的 js 和使用 less 定义的 css 的组合。对于我们的开发环境,我们使用单个文件运行并使用前端脚本。但是对于生产,我热衷于删除前端要求并编译/压缩库。

目前我们可以在 symfony 之外使用 grunt 来做这件事——但是将它自动化并与 symfony 系统集成是非常可取的。

例如:

开发:Assetic 使用符号链接从包中映射文件——这允许在项目中进行编辑和测试。

Prod:Assetic 运行 Grunt 并在将文件部署到 Web 目录之前对其进行压缩。

我热衷于保留与树枝模板的集成以及 Assetic 提供的文件的版本控制。

显然 grunt 确实与 Assetic 重叠——但他们/他们能很好地一起玩吗?

4

1 回答 1

1

我只会使用 Assetic,除非有特定的东西需要使用 Grunt。它们可以共存并很好地发挥作用,但重叠似乎非常多余。我们将多个过滤器与 Assetic 一起用于我们的自动化部署,而不是使用 require.js,我们有额外的脚本块,我们在每个模板的基础上覆盖这些块,这样我们就不会在不需要它的页面上加载脚本。

下面是我们的 Assetic 在一些过滤器配置下的样子:

assetic:
debug:          %kernel.debug%
use_controller: false
bundles:        ['AcmeBundle', 'FOSUserBundle', 'FooBundle']
java:           /usr/local/bin/java
filters:
    less:
        node:       /usr/local/bin/node
        node_paths: [/usr/local/lib/node_modules]
        apply_to:   "\.less$"
    cssrewrite: ~
    cssembed:
        jar:      %kernel.root_dir%/Resources/java/cssembed-0.4.5.jar
        apply_to: "\.css$|\.less$"
    yui_css:
        jar:      %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar
        apply_to: "\.css$"
    yui_js:
        jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar
        apply_to: "\.js$"
    closure:
        jar: %kernel.root_dir%/Resources/java/compiler.jar
于 2013-03-19T18:01:40.437 回答