8
votes

Comment puis-je sauter une tâche grogneuse si un répertoire est vide

J'utilise CRUNT-CONTRUT'S> Concat et UGLIFY Module pour traiter certains javascript. Actuellement si src / js / est vide, ils créeront toujours un fichier concat'd (vide), ainsi que la version minifiée et une carte source.

Je veux que la tâche de détection si le dossier src / js / est vide avant de continuer et s'il est, la tâche doit sauter (non échouer). Des idées comment faire cela?


4 commentaires

Souhaitez-vous afficher une copie de votre gruntfile.js ? Avez-vous essayé de tout faire via laferfection uniquement (aussi la concaténation), juste pour des tests?


Related / Duplicaté? Stackoverflow.com/Questtions/21001469/... < / a>


La source est disponible ici: Github.com/jtfairbank/milkshake


J'essaie spécifiquement de résoudre les 2e et 3ème todos dans le gruntfile.js.


3 Réponses :


2
votes

avec ce plugin:

https://www.npmjs.org/package / GRUNT-FILE-EXISTRES

Vous pouvez vérifier l'existence des fichiers. (Je n'ai pas essayé, mais la source ressemble à soutenir GRUNT s'agrande. (*, ** ...)

Par exemple comme celui-ci :: xxx

Mais peut-être que si le fichier n'existe pas, il échouera avec une erreur au lieu d'un simple saut. (Je n'ai pas testé.)

S'il s'agit d'un problème, vous pouvez modifier un peu la source de ce plugin pour exécuter la tâche associée si le fichier existe:

la configuration : xxx

et vous devez ajouter ceci: xxx

dans ce fichier:

https://github.com/alexeiskachykhin/grunt-file-exists /blob/master/tasks/fileeexists.js

Après cette ligne: xxx


1 commentaires

On dirait que cela fonctionnera, mais je préférerais une solution plus propre que d'utiliser une version patchée de GRUNT-File-Exist. :)



3
votes

La solution peut ne pas être la plus jolie, mais pourrait vous donner une idée. Vous devrez exécuter quelque chose comme NPM Installer --Save-dev glob premier. Ceci est basé sur une partie du projet Milkshake que vous avez mentionné. XXX

Un gist à comparaison: https://gist.github.com/kosmotaur/61bff2bc807b28a9fcfa


1 commentaires

Merci cela a fini par être ce dont j'avais besoin!



2
votes

Peut-être que ceci est juste une réponse plus à jour, car les autres ont plus d'un an, mais vous n'avez pas besoin de plugin pour cela; Vous pouvez utiliser grunt.file.expand code> pour tester si des fichiers correspondant à un certain motif de globbing existent.

Mise à jour de la réponse de @ kosmotaur (chemin est juste du code difficile ici, mais aussi de simplicité): P >

grunt.registerTask('build_js', function(){
  // if any file matches the glob pattern
  if (grunt.file.expand("subdir/**/*.js").length) { /** new bit here **/ 
    // if so, run the task chain
    grunt.task.run([
        'trimtrailingspaces:js'
      , 'concat:js'
      , 'uglify:yomama'
    ]);
  }
});


2 commentaires

Merci pour la mise à jour Marc! Pourriez-vous fournir un peu plus de contexte pour votre code? Est-ce que j'utiliserais cela directement dans une valeur SRC ou fichiers tableau? Ou serais-je l'utiliser dans la partie supérieure de la fonction comme @kosmotaur? Si oui, pouvez-vous imiter sa mise en page et fournir une fonction d'exemple complète?


Travaillé pour moi, merci!