- From: Jack Works <notifications@github.com>
- Date: Fri, 06 Sep 2019 19:57:20 -0700
- To: w3c/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Saturday, 7 September 2019 02:57:43 UTC
I have made a demo that can import without Service Worker (but service worker can cache and enhance the experience).
css-module-loader.js
```JS
const src = new URL(import.meta.url).searchParams.get('src')
const container = new CSSStyleSheet()
fetch(src)
.then(x => x.text())
.then(x => container.replace(x))
export default container
```
index.js
```js
import article from './markdown-loader.js?src=./article.md'
import css from './css-module-loader.js?src=./style.css'
document.body.appendChild(document.createElement('div')).appendChild(article)
document.adoptedStyleSheets = [css]
```
This pattern works for all types of file that do not need a sync loading.
For async loading, you need `top level await` or `sync xhr`. For async compiling, only can be done by Service worker.
My demo at: https://github.com/Jack-Works/loader-with-esmodule-example
Supports Markdown module, CSS Module, JSON Module
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/webcomponents/issues/759#issuecomment-529065835
Received on Saturday, 7 September 2019 02:57:43 UTC