Turn HTML imports into HTMLTemplateElement.
Given the following template.html.
<span>html template 🌞</span>
import template from './template.html'
import style from './style.css'
// ...
this.shadowRoot.append(template.content.cloneNode(true))
var template = document.createElement('template');
template.innerHTML = '<span>html template 🌞</span>';
var style = new CSSStyleSheet;
style.replaceSync('span { color: dodgerblue })
// ...
this.shadowRoot.append(template.content.cloneNode(true))
$ yarn add -D babel-plugin-transform-html-import-to-template
.babelrc
{
"plugins": ["transform-html-import-to-template"]
}
$ babel --plugins transform-html-import-to-template script.js
import core from 'babel-core'
const plugins = [
// ...
'transform-html-import-to-template'
// ...
]
core.transform(code, { plugins })