vime icon indicating copy to clipboard operation
vime copied to clipboard

Polyfilled scripts don't load if there aren't <script> tags

Open zshall opened this issue 1 year ago • 0 comments

The problem:

I've been running into issues using Vime's HLS provider in SvelteKit on a browser that requires the hls.js library to function. My application is bundled with the output being <link rel="modulepreload" href="..."> tags, not <script src="..."></script> tags.

In the loadScript function which loads hls.js, line 62 queries for the first <script> tag on the page:

https://github.com/vime-js/vime/blob/c1f311950c52b5c49329873a6bb9739f3727223f/packages/core/src/utils/network.ts#L62

If there isn't one then the library can't be loaded.

A workaround:

You can modify SvelteKit's app.html to add an empty script tag which allows the loadSdk() call to work:

<!DOCTYPE html>
<html lang="en">
	<head>
		<script>// empty script tag to satisfy conditions for loadSdk();</script>
		%sveltekit.head%
	</head>
...

One potential fix may be that if there aren't any script elements a loaded library could be prepended to the <head> or appended to the <body>.

zshall avatar Mar 04 '24 03:03 zshall