9
votes

Grunt traite le dossier avec un point en tant que fichier

Lorsque vous essayez de compiler mon dossier grognement et construire dans mon dist code> dossier pour le déploiement, je reçois l'erreur suivante dans la console:

bower_components
  -> ...
  -> angular-ui-router
  -> animate.css  // Folder with the error
  ---> animate.css  // File that it should be recognizing
  ---> animate.min.css  // File that it should be recognizing
  -> es5-shim
  -> ...


3 commentaires

Pourquoi utilisez-vous {, * /} ? Si je lis les docs droite, qui correspond soit à une chaîne vide ou un nom de répertoire (y compris le slash). Me semble que vous devriez utiliser ** / *. Css . (Soit dit en passant, et Globs regexes ne sont pas la même chose.)


Vous avez raison à propos de la différence entre Globs et regex, j'ai modifié les étiquettes de mon post en conséquence. La raison pour laquelle j'utilise {, * /} est parce que cela renommera uniquement les fichiers concaténés finaux (puisque tout est combiné dans un grand .js et un grand et un grand .css fichier. Faire ** / *. CSS renomme tous les fichiers CSS, pas seulement les quelques fichiers dont j'ai besoin. Cela a-t-il de sens ou devrais-je réexprimer?


Je suis tombé sur cette question avant - le coupable était que j'utilisé une version de grognement devcode qui n'a pas correctement traiter avec des points dans les répertoires - le point où vous obtenez l'erreur est après votre code html a été « simplifié » - alors peut-être un autre paquet de NPM ne traite pas avec les points correctement. Je ne sais pas si vous utilisez grognement devcode mais je voudrais commencer par parler un regard sur les paquets que vous utilisez


4 Réponses :


0
votes

Vous devriez être en mesure d'utiliser un fonction filtre personnalisé avec de fs.Stats. En outre, il y a l'option ext code> (Indique si la période est l'extension délimitant situé.)

ext: Chaîne strong> p>

src: [
     '<%= yeoman.dist %>/public/{,*/}*.js',
     '<%= yeoman.dist %>/public/{,*/}*.css',  // Offending line
     '<%= yeoman.dist %>/public/assets/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
     '<%= yeoman.dist %>/public/assets/fonts/*'
     ],
     filter: 'isDirectory',


12 commentaires

Je ne crois pas que cela fonctionne. Il renvoie une erreur: Filtre /Applications/MAMP/htdocs/octovis/barnacle/Gruntfile.js:218: 'isDirectory', ^ "Chargement Gruntfile.js" tâches ... ERREUR >> SyntaxError: jeton inattendu: Avertissement: Tâche " par défaut » introuvable. --force, continue occasion.


Soit dit en passant, changer de filtre: « isFile » jette la même erreur.


Essayez la façon dont je l'ai montré maintenant. Je pense que vous voulez utiliser isFile bien.


Bizarre, je l'ai changé à votre dernière édition et a essayé à la fois isDirectory et isFile et les deux m'a donné exactement la même erreur que dans mon OP.


Intéressant. Il peut-être un problème où l'expression rationnelle ne parcourait dans le répertoire ... la seule chose que je peux suggérer atm est / public / {** /} *. Css


@cereallarceny, Oh une chose que je viens de penser à dot: true . Je vais l'ajouter à ma réponse.


La honte, ni le / public / {** /} * css string ni ajouter dot. True avec isFile ou isDirectory filtre fonctionne. Complètement bizarre ...


Désolé, je sens à écrire ext : - bien que je ne l'ai jamais essayé. Apparemment, vous pouvez indiquer la période où l'extension réelle se trouve, peut-être qui pourrait aider.


Vraiment bien, le filtre doit avez travaillé - donc je suis un peu déconcerté. Il y a bien quelques autres options de fichiers figurant sur les documents que je LIÉ, peut-être il passe en revue un peu.


Le filtre n'est pas responsable du déclenchement d'une SyntaxError dans votre Gruntfile. vous est-code Javascript ok? jshint Est-ce qu'il aime?


JS Indice l'aime bien.


isFile devrait fonctionner correctement: stackoverflow.com/questions/24503077/...



6
votes

Exclure le dossier animeate.csss , puis inclure tout à l'intérieur. Je ne suis pas sûr des options globales exactes voir ici , pour plus de détails. Quelque chose comme ceci: xxx


4 commentaires

J'aimerais voir quelqu'un faire cela dans un glob plus général aussi ... Je pouvais voir les questions soulevées si vous aviez un dossier appelé awesomeLib.js qui est un schéma de nommage commun des projets.


@cereallarceny Je pense que personne ne devrait nommer leurs dossiers comme ça, il est dangereux, vous ne pouvez pas contourner pour chaque configuration que vous avez.


Je suis d'accord, mais ce n'est vraiment pas à moi ce que font les autres.


Upvoting parce que cela fonctionne et la solution correcte marqués comme ci-dessus PAS



7
votes

J'ai une approche légèrement différente.

Bower Installation Animate-CSS --Save

Il va attraper animer.css mais économiser à:

bower_components / animate-css

Utilisation de cette méthode que vous n'avez pas à jouer avec Gruntfile.js que je considère personnellement désagréable pour éditer et même regarder;)


3 commentaires

Est-ce césures du spécifique nom du package à la bibliothèque de animate.css ou est-ce quelque chose fait charmille quand les gens soumettent des paquets avec des points dans le nom?


Il n'y a rien dans bower.json du projet animate.css indiquant le nom alternatif. Je devine que la méthode de son fallback Bower. Si je vous être je ferais expérience rapide en installant un autre paquet - je devine que vous êtes toujours sérieusement intrigués de le faire:>


Cela ne fonctionne pas avec des paquets de Bower comme fullpage.js. Lance une erreur "ENOTFOUND Package FullPage-js not found"



0
votes

Exemple d'utilisation isFile, a travaillé un charme pour moi.

// Renames files for browser caching purposes
filerev: {
  dist: {
    src: [
      '<%= yeoman.dist %>/**/*.js',
      '!<%= yeoman.dist %>/local.js',
      '!<%= yeoman.dist %>/web.js',
      '<%= yeoman.dist %>/styles/**/*.css',
      '<%= yeoman.dist %>/images/**/*.{png,jpg,jpeg,gif,webp,svg}',
      '<%= yeoman.dist %>/styles/fonts/*'
    ],
    filter: 'isFile'
  }
},


0 commentaires