Comment utiliser un minificateur HTML avec des modèles de sous-trait

J'ai des modèles pour mon code d'interface, comme:

<div class="row"> <div class="my-header col-md-1"> <!-- comments --> {{ title }} </div> <div class="my-container col-md-11"> {% if (content) { %} {{ content }} {% } else { %} <p>Empty</p> {% } %} </div> </div> 

Et j'utilise grunt-contrib-jst pour les stocker tous dans un seul fichier, puis sur une autre étape de construction sera inclus dans un seul fichier JS et ce fichier est envoyé au CDN. Cette partie fonctionne parfaitement, mais je souhaite utiliser l'option processContent pour minimiser le code de modèle HTML, qui contient des délimiteurs de modèle Undercore ( <%...%> remplacé par {% ... %} , <%= ... %> Remplacé par {{ ... }} ).

Je voulais utiliser html-minifier, mais il ne réduit pas réellement quelque chose, apparemment parce qu'il essaie d'analyser le modèle en HTML uniquement (et échoue en raison des balises de modèle).

Existe-t-il un paquetage / fonction Node qui me permet de minimiser ce type de modèles? J'aimerais utiliser les commentaires et les espaces dans les modèles source, mais supprimer tout ce qui n'est pas nécessaire sur le fichier de construction résultant.

À l'heure actuelle, j'ai ceci sur mes paramètres JST:

 processContent: function (content) { return content .replace(/^[\x20\t]+/mg, '') .replace(/[\x20\t]+$/mg, '') .replace(/^[\r\n]+/, '') .replace(/[\r\n]*$/, '\n'); }, ... 

Mais je veux minimiser tout le possible, c'est pourquoi j'ai essayé avec html-minifier .

Merci!

Je ne peux vraiment pas aider à minimiser les délimiteurs de modèles de soulignement, essayant toujours de trouver la meilleure façon de le faire moi-même, mais vous voudrez peut-être envisager d'exécuter vos modèles via htmlclean . Je l'utilise avec r.js et ça marche très bien pour éliminer les nouvelles lignes et les espaces dans le code. Exemple d'utilisation:

 var htmlclean = require('htmlclean'); // ... processContent: function (content) { return htmlclean(content) .replace(/^[\x20\t]+/mg, '') .replace(/[\x20\t]+$/mg, '') .replace(/^[\r\n]+/, '') .replace(/[\r\n]*$/, '\n'); }, 

Je n'ai eu aucun problème avec l'utilisation de ce document sur HTML qui a mis en exergue des modèles. J'espère que ça t'aide.