web-dev-qa-db-fra.com

Gulp tâche de regrouper bower_components?

J'apprécierais beaucoup si quelqu'un pouvait me dire s'il vous plaît un bon moyen de gérer le regroupement des composants de la tondeuse. J'ai l'impression que j'ai tout essayé ... Bien que, je n'arrive pas à trouver de tâches d'abat qui gèrent déjà cela. Pourrait-il vraiment pas exister? 

Disons que ça n'existe pas. Le pire scénario est que je dois spécifier les chemins de chaque fichier "dist" du dossier bower_components. (Il est agaçant que chaque composant semble avoir son propre dossier "dist" ... rien n’est normalisé.)

Donc, même si je le fais, j'ai remarqué que certains composants tels que 'active-support' semblent avoir require('lodash') et autres en eux. Je pense que si je copie simplement ce fichier, il va casser parce que la demande ne résoudra pas. 

Qu'est-ce que je rate? Comment prendre simplement tous les composants bower et les regrouper dans un "common.js" ... existe-t-il un moyen ou s'agit-il d'un clusterfluck? 

27
JayPrime2012

Mettre à jour

Comme l'a souligné Alerty, la nouvelle politique Gulp semble être la suivante: utilisez directement bower et les modèles globaux (et espérez que les responsables de la maintenance des packages possèdent les propriétés "ignore" appropriées).


Précédemment

Vous pouvez utiliser main-bower-files ou gulp-bower-src pour obtenir des fichiers à partir de vos composants bower. Ils peuvent également utiliser des remplacements "ignorer" ou "principal" dans votre propre fichier Bower.

12
Brian Clozel

Voici comment je l'ai géré (mais voir gulpfile.js pour la structure du projet, ce n'est pas un fichier gulp gigantesque):

https://github.com/notbrain/viceroy/blob/master/gulp/tasks/bower.js

Serait un peu plus modulaire de simplement concaténer toutes les dépressions de bower et ensuite de faire les tâches uglify () et minifyCSS () séparément sur les emplacements dist/source, en fonction des cibles env/prod, mais devra attendre des mises à jour futures.

2
Brian

si vous avez des dossiers comme:

-app
-bower
-node_modules
Gulpfile.js
package.json

les solutions sont:

gulp.task("connect", function () {
  connect.server({
    root: ["app"],
    livereload: true,
    port: 8034,
    middleware: function (connect) {
      return [connect().use("/bower", connect.static("bower"))];
    }
  });
});
0
vlad mehera

Utilisez main-bower-files :

var gulp = require('gulp');
var mainBowerFiles = require('main-bower-files');

gulp.task('TASKNAME', function() {
    return gulp.src(mainBowerFiles())
        .pipe(/* what you want to do with the files */)
});
0
Edward Brey