2013-03-19 65 views
3

我们的应用程序使用amd加载的js和css组合使用less定义。对于我们的开发环境,我们使用单个文件运行并使用前端脚本。然而,对于生产而言,我渴望去除前端需求并编译/压缩库。Symfony,grunt,requires.js和Assetic

目前我们可以使用grunt在symfony之外做到这一点 - 然而,将它自动化并将其与symfony系统集成将是非常理想的。

例如:

开发:Assetic映射使用符号链接的包中的文件 - 这使得在项目中编辑和测试。

Prod:Assetic运行Grunt并压缩文件,然后将其部署到Web目录中。

我非常希望保留与树枝模板的集成以及Assetic提供的文件的版本控制。

明显的咕噜声与Assetic重叠 - 但他们/他们可以一起玩吗?

回答

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