2016-06-10 2 views
0

J'ai une tâche de gulp qui ouvre un fichier index.html et remplace deux build/block avec un autre contenu. J'utilise "gulp-html-replace": "^ 1.6.0"gulp-html-replace ne remplace pas le bloc entier

L'un de ces blocs n'effectue pas le remplacement correctement.

Voici la gulp tâche:

gulp.task("html:bundle", ['html:clean', 'html:copy'], function() { 
    gulp.src('./src/index.html') 
    .pipe(htmlReplace({ 
     'APPJS': '/DesktopModules/regentsigns-app/dist/app.min.js' 
    })) 
    .pipe(gulp.dest('dist/')); 
}) 

Voici le bloc html qui doit être remplacé:

<!-- build:APPJS --> 
<script>System.import('app').catch(function (err) { console.error(err); });</script> 
<!-- endbuild --> 

Voici le résultat :

<script src="/DesktopModules/regentsigns-app/dist/app.min.js"></script> 

stem.import('app').catch(function (err) { console.error(err); });</script> 
<!-- endbuild --> 

Comme vous pouvez le voir, le remplacement injecte le nouveau texte mais ne supprime pas complètement le texte existant.

Quelqu'un peut-il m'aider à comprendre pourquoi?

Merci

Répondre

2

Cela semble se produire pour moi si le fichier source était déjà dans le dossier de destination. Je m'assurerais que vous n'avez pas une tâche qui place votre fichier index.html dans le dossier dist avant votre tâche de regroupement.

+0

En fait, il semble que c'était parce que les tâches de copie s'exécutaient simultanément en tant que tâches groupées. J'ai donc eu recours à l'exécution de séquence pour m'assurer que ma copie était terminée avant mon regroupement et cela a résolu mon problème. – user6469847

+0

merci beaucoup, le problème était le fichier existant déjà à partir d'une autre tâche simultanée. Je nettoie mes tâches pour isoler ce fichier d'index de tous les autres html que je déplaçais dans la tâche de gulp. –