Roo*_* V. 5 javascript ecmascript-6 template-strings
就像是
var tpl = `
<div>
template
<span>string</span>
</div>
`
Run Code Online (Sandbox Code Playgroud)
会产生:
var tpl = "\n<div> \n template\n <span>string</span>\n</div>\n";
Run Code Online (Sandbox Code Playgroud)
我需要的是摆脱额外的空间和可能的换行符,就像所有其他html缩小工具一样.
所以它应该变得类似于:
"<div>template<span>string</span></div>"
Run Code Online (Sandbox Code Playgroud)
有没有什么方法能够明智地实现这一目标并且坚不可摧?
最好的方法可能是使用标记模板,例如
var tpl = minifyHTML `
<div>
template
<span>string</span>
</div>
`;
Run Code Online (Sandbox Code Playgroud)
你可以从
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("");
}
Run Code Online (Sandbox Code Playgroud)
这与没有标签的情况基本相同。
现在您可以扩展它以parts动态缩小模板的 ,以便tpl成为预期的字符串。
下一步是将其作为编译管道中的静态优化引入。弄清楚如何编写与 AST 中标记的模板表达式匹配的规则,其中标记是标识符minifyHTML,然后评估您的缩小作为将 ES6/TypeScript 源编译/捆绑到分发文件的一部分。
| 归档时间: |
|
| 查看次数: |
2230 次 |
| 最近记录: |