狼吞虎咽(&;symfony):处理资产

狼吞虎咽(&;symfony):处理资产,symfony,gulp,assets,Symfony,Gulp,Assets,我需要在一个遗留应用程序中用symfony实现gulp。传统的symfony应用程序部分正在工作,但我有点被galpsymfony部分卡住了。在我们的应用程序中,“web”文件夹称为html。在这个文件夹中,我有一个用于libs的组件文件夹,比如bootstrap、jquery、…,以及js、css、image、,。。。文件夹。在js文件夹中,我们有一个config文件夹,其中包含一些lib(例如dataTables)的默认配置,还有一个extensions文件夹,其中包含一些自我编写的js文件

我需要在一个遗留应用程序中用symfony实现gulp。传统的symfony应用程序部分正在工作,但我有点被galpsymfony部分卡住了。在我们的应用程序中,“web”文件夹称为html。在这个文件夹中,我有一个用于libs的组件文件夹,比如bootstrap、jquery、…,以及js、css、image、,。。。文件夹。在js文件夹中,我们有一个config文件夹,其中包含一些lib(例如dataTables)的默认配置,还有一个extensions文件夹,其中包含一些自我编写的js文件旁边的扩展名(例如jquery扩展名)。我需要将这些配置/扩展文件与js lib文件结合起来

我的想法是创建一个json对象(称为模块),包含所有资产。然后,我将循环这个modules对象,并在需要时调用gulp任务

e、 g:

对于bootstrap,我将调用一个gulp任务来缩小和组合css文件,并更新URL和导入,一个将字体复制到html/fonts文件夹的任务和一个将js文件复制到html/js的任务


这是一个好方法吗?还是有更好的方法来管理symfony的资产?(我知道你有Assetic捆绑包,但我们有时确实使用es6,所以我们需要gulp用babel翻译一些js文件,而这是不可能的(据我所知,使用Assetic)

我将回答我自己的问题,因为它可能会帮助其他人

Symfony为资产管理引入了“encore”。有一个。encore使用webpack,这是一个众所周知的模块绑定器

`var modules = {
    bootstrap : {
        css: ['/html/components/bootstrap/css/bootstrap.min.css, html/css/layout.css'],
        fonts: ['html/components/bootstrap/fonts/*'],
        js: ['/html/components/bootstrap/js/bootstrap.min.js']
    }, ...
};`