UNPKG

@moomfe/hu-template-minifier

Version:

该类库将使用了 [模板字符串 - 标签 ( Template literals )](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates) 功能实现模板定义的类库中的 HTML 代码进行压缩.

34 lines (27 loc) 1.13 kB
require('@moomfe/zenjs'); const MagicString = require('magic-string'); const getLiterals = require('./util/getLiterals.js'); const getPlaceholder = require('./util/getPlaceholder.js'); const minifierHTML = require('./util/minifierHTML.js'); const processCode = require('./util/processCode.js'); module.exports = function minifier( userCode = '', id = '', userOptions ){ const options = Object.$assign( null, userOptions ); const code = processCode( userCode, id, options ); const literals = getLiterals( code, id ); if( literals.length ){ const msCode = new MagicString( code ); literals.forEach( literal => { const placeholder = getPlaceholder( literal.parts ); const combined = literal.parts.map( part => part.text ).join( placeholder ); const min = minifierHTML( combined, options ); const minParts = min.split( placeholder ); literal.parts.forEach(({ start, end }, index) => { if( end > start ){ msCode.overwrite( start, end, minParts[ index ] ); } }); }); return msCode.toString(); } return code; }