2017-09-06 2 views
2

Je dois implémenter gulp dans symfony dans une application héritée. L'ancienne partie de l'application < -> symfony fonctionne, mais je suis un peu coincé sur le gulp < -> partie symfony. Le dossier 'web' s'appelle html dans notre application. Dans ce dossier, j'ai un dossier de composants pour les bibliothèques comme bootstrap, jquery, ..., et js, css, image, ... dossier. Dans notre dossier js, nous avons un dossier config, qui contient des configs par défaut pour certaines libs (par exemple dataTables) et un dossier extensions, qui contient des extensions (par exemple des extensions jquery), à côté de certains fichiers js auto-écrits. J'ai besoin de combiner ces fichiers config/extension avec les fichiers js lib.gulp (& symfony): travailler avec des ressources

Mon idée de faire ceci, était de créer un objet json (appelé modules), avec tous les actifs. Ensuite, je bouclerais sur cet objet de modules, et j'appellerais les tâches de gulp si nécessaire.

par exemple:

`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'] 
    }, ... 
};` 

pour bootstrap, j'appellerais une tâche engouffreur à rapetisser et combiner les fichiers CSS et de mettre à jour les urls et les importations, une tâche copier les polices dans le code html/dossier des polices et tâche de copier le fichier js en html/js

Est-ce une bonne approche? Ou y a-t-il une meilleure façon de gérer les actifs dans symfony? (Je sais que vous avez le bundle Assetic, mais nous utilisons parfois es6, donc nous avons besoin de gulp pour traduire certains fichiers js avec babel, et ce n'est pas possible (autant que je sache, avec Assetic)

Répondre

0

répondre à ma propre question, car il pourrait aider les autres.

Symfony a mis en place « encore » pour la gestion des actifs. il y a un chapter about encore. Encore utilise webpack, qui est un module bien connu Bundler.