2013-03-19 69 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