2015-04-15 1 views
0

Je dispose d'un fichier .html qui contient id = « fixedtext », je veux remplacer tous ces id avec id = « uniquetext »Remplacer tout le texte avec le remplacement à l'aide grognement remplacer spécifié

le grognement-texte remplacer remplace simplement le premier identifiant qu'il trouve et n'analyse pas le texte entier.

Toute idée de comment puis-je faire soit grognement texte remplacer https://github.com/yoniholmes/grunt-text-replace

ou grognement https://www.npmjs.com/package/grunt-replace remplacer le faire pour l'ensemble du document et non seulement pour la première occurrence.

replace: { 
      dist: { 
       options:{ 
        patterns:[{ 
         match:'id="fixedtext"', 
         replacement: 'id="'+something[i++] +'"' 
        }], 
        files:[ 
         { 
          expand: true, 
          src:['./source.html'], 
          dest:'./dest.html' 
         } 
        ] 
       } 
      } 
     }, 
+0

En ce que j'ai fait des recherches d'ajouter un identifiant unique champ id du champ script n'est pas possible de l'approche suivante . Tâche Grunt certains comment cache la tâche et l'utilise même lorsque la tâche est appelée récursivement. – patz

Répondre

0

C'est ce qui peut être fait si des identifiants uniques doivent être ajoutés. En supposant que vous ayez déjà un tableau de tous les identifiants que vous voulez ajouter lorsque vous exécutez votre tâche.

Dans ce cas, les id sont les noms de fichiers

créer votre propre tâche wrapper

var path = require('path'); 
var fs = require('fs'); 

    grunt.initconfig({ 
    wrap:{ 
      html:{ 
       header:'<script type="text/ng-template" ', 
       footer:'</script>', 
       src:'./yourPathToFile/', 
       dest'./yourPathToDest/' 
      } 
     } 
    }); 

grunt.registerMultiTask('wrap', 'wrap header and footer with custom id', function(){ 
var data = this.data; 
getListOfFiles(data.src); 

function getListOfFiles(expand_path){ 
     var listOfFiles = fs.readdirSync(expand_path); 
      for(var i=0; i<listOfFiles.length; i++){ 
       var completePath = expand_path + listOfFiles[i]; 
       var extension = path.extname(completePath); 
       if(fs.lstatSync(completePath).isDirectory()){ 
        var newDirPath = completePath + '/'; 
        console.log('true------ : \n',newDirPath); 
        getListofFiles(newDirPath); 
       } 
       else if(extension == '.html'){ 
        console.log('F:\n', completePath); 
        fullSrcPath = path.resolve(completePath); 
        content = grunt.file.read(fullSrcPath); 
        scriptId = 'id="' + listOfFiles[i]+'">'; 
        header = (grunt.template.process(data.header)); 
        footer = (grunt.template.process(data.footer)); 
        wholeFile = header + scriptId + content + footer; 
        grunt.file.write(fullSrcPath, wholeFile); 
       } 
      } 
} 

});