5

何かのようなもの

var tpl = `
<div> 
   template
   <span>string</span>
</div>
`

生産します:

var tpl = "\n<div> \n  template\n  <span>string</span>\n</div>\n";

私が必要としているのは、他のすべての HTML 縮小ツールが行うように、余分なスペースとおそらく改行を取り除くことです。

したがって、次のようになります。

"<div>template<span>string</span></div>"

これを賢明かつ不滅にする方法はありますか?

4

1 に答える 1

4

最良のアプローチは、おそらく次のようなタグ付きテンプレートを使用することです

var tpl = minifyHTML `
<div> 
   template
   <span>string</span>
</div>
`;

あなたはから始めることができます

function minifyHTML(parts, ...values) {
    var out = [];
    out.push(parts[0]);
    for (var i = 1; i<parts.length; i++)
        out.push(parts[i], String(arguments[i]));
    return out.join("");
}

これは基本的にタグなしと同じです。

これを拡張してpartsテンプレートの を動的に縮小し、tplが期待される文字列になるようにします。

次のステップは、これをコンパイル パイプラインの静的最適化として導入することです。タグが identifier である AST のタグ付きテンプレート式に一致するルールを作成する方法をminifyHTML見つけてから、分散ファイルへの ES6/TypeScript ソースのコンパイル/バンドルの一部としてミニフィケーションを評価します。

于 2015-08-19T15:16:26.880 に答える