template string optimize loader module for webpack
npm i template-string-optimize-loader -D
module: { rules: [ { test: /\.js$/, use: [ 'template-string-optimize-loader', 'babel-loader' ] } ] }
// ES6 template string HTML const template = data => ` <!-- section start --> <section> <h3>${data.title}</h3> <div>${data.date}</div> <dl> <dt>Coffee</dt> <dt>Black hot drink</dt> <dt>Milk</dt> <dd> <ul> ${data.list.map((item) => ` <li>${item}</li> `).join('')} </ul> </dd> </dl> </section> <!-- section end --> `;
// source => babel var template = function template(data) { return '\n <!-- section start -->\n <section>\n <h3>' + data.title + '</h3>\n <div>' + data.date + '</div>\n <dl>\n <dt>Coffee</dt>\n <dt>Black hot drink</dt>\n <dt>Milk</dt>\n <dd>\n <ul>\n ' + data.list.map(function (item) { return '\n <li>' + item + '</li>\n '; }).join('') + '\n </ul>\n </dd>\n </dl>\n </section>\n <!-- section end -->\n'; };
// source => babel => template-string-optimize var template = function template(data) { return '<section><h3>' + data.title + '</h3><div>' + data.date + '</div><dl><dt>Coffee</dt><dt>Black hot drink</dt><dt>Milk</dt><dd><ul>' + data.list.map(function (item) { return '<li>' + item + '</li>'; }).join('') + '</ul></dd></dl></section>'; };