3

Comment ajouter du texte à plusieurs fichiers à l'aide grognement fichiers ajouterannexant texte à plusieurs fichiers à l'aide grunt-file-append

https://www.npmjs.com/package/grunt-file-append

grunt.initConfig({ 
    file_append: { 
    default_options: { 
     files: [ 
     { 
      append: "text to append", 
      prepend: "text to prepend", 
      input: '/path/to/input/file' 
      output: 'path/to/output/file' 
     } 
     ] 
    } 
    } 
}) 

si j'écris la fonction de cette façon, pour annexant à plusieurs fichiers, il casse une erreur.

grunt.initConfig({ 
    file_append: { 
    default_options: { 
     files: [ 
     { 
      append: "text to append", 
      prepend: "text to prepend", 
      input: './path/to/input/*.html' 
      output: 'path/to/output/*.html' 
     } 
     ] 
    } 
    } 
}) 

je reçois l'erreur suivante:

Running "file_append:default_option" (file_append) task 
>> Source file "./path/to/output/*.html" not found. 
Warning: Task "file_append:default_option" failed. Use --force to continue. 

Aborted due to warnings. 

annexant juste pour un seul fichier fonctionne, mais pas pour les fichiers multiples, quelque chose que je fais mal ici.

Répondre

3

Je ne pense pas que cela soit supposé fonctionner. Comme vous pouvez le voir dans le github code for grunt-file-append:

prepend = file.prepend || "" 
append = file.append || "" 
fileContent = grunt.file.read filepath 
value = "#{ prepend }#{ fileContent }#{ append }" 
grunt.file.write filepath, value 

Il ne lit qu'un seul fichier et ajoute/précèder sur elle. Avez-vous essayé grunt-contrib-concat?

+0

J'ai utilisé la concat grunt contrib, mais je suis un nouveau grunt, je ne sais pas comment fusionner ces deux plugins les uns aux autres. – patz

+0

Y at-il un moyen que je peux utiliser contact grunt contrib et ajouter ou préfixer les balises en utilisant cela. – patz

+0

oui, regardez l'option 'banner' et' footer': https://github.com/gruntjs/grunt-contrib-concat#banner – jmartins

3

Comme @jmartins mentionné le code est tout simplement pas mis en place pour faire face à quelque chose/*. Html ', je pense la seule façon de joindre plusieurs fichiers (autres que par une modification du code source) est d'avoir plusieurs objets dans le tableau:

file_append: { 
     default_options: { 
      files: [{ 
       prepend: 'something', 
       input: '<%= config.dist %>/<%= config.distScripts %>/script1.js', 
       output: '<%= config.dist %>/<%= config.distScripts %>/script1.js' 
      }, { 
       prepend: 'something', 
       input: '<%= config.dist %>/<%= config.distScripts %>/script2.js', 
       output: '<%= config.dist %>/<%= config.distScripts %>/script2.js' 
      }, { 
       prepend: 'something', 
       input: '<%= config.dist %>/<%= config.distScripts %>/script3.js', 
       output: '<%= config.dist %>/<%= config.distScripts %>/script3.js' 
      }] 
     } 
    } 

Ce n'est pas super quand vous avez beaucoup de fichiers à mettre à jour mais il serait probablement être plus facile de simplement mettre à jour le source pour faire ce dont vous avez besoin s'il y a beaucoup de fichiers, ou s'il n'y a pas de liste finie et que vous ne voulez pas vraiment mettre à jour le fichier grunt en permanence.