Symfony, Grunt, RequireJS和Assetic

3
我们的应用程序使用amd加载的js和使用less定义的css的组合。在开发环境中,我们使用单个文件并使用前端脚本运行。但是在生产环境中,我很想去掉前端要求,并编译/压缩库。
目前,我们可以在Symfony之外使用grunt来完成此操作 - 但是自动化此操作并将其与Symfony系统集成将非常有价值。
例如:
开发环境:Assetic通过符号链接从bundle映射文件 - 这允许在项目内进行编辑和测试。
生产环境:Assetic运行Grunt并在将文件部署到Web目录之前对其进行压缩。
我希望保留与twig模板的集成以及Assetic提供的文件版本控制。
显然,grunt与Assetic重叠 - 但它们是否可以共存?
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接