Thursday, May 9, 2024
 Popular · Latest · Hot · Upcoming
94
rated 0 times [  100] [ 6]  / answers: 1 / hits: 51037  / 7 Years ago, mon, may 22, 2017, 12:00:00

I am using ES2015 Import / Export modules.



In my worker file, when I try to import functions like I normally do:



worker.js



import { a, b, c } from ./abc.js;


I get the error:
SyntaxError: import declarations may only appear at top level of a module



As I am exporting functions in my module 'abc.js', I am not sure how to use them using the old (& apparently on its way out) syntax:



self.importScripts( /app/abc.js );


So, my question is, how do we use the new import module syntax with workers?



Second question is, what does importScripts import into when it imports from a module in where is there is no global object parent being exported?


More From » import

 Answers
10

ES2015 modules in Workers are available in Safari and in Chromium browsers.


If other browsers / versions are your target, you still need to use importScripts().


When available, you create a module-worker like this:


new Worker("worker.js", { type: "module" });

See: https://html.spec.whatwg.org/multipage/workers.html#module-worker-example


These are the bug-reports for each browser:



  • Firefox: Fixed! behind a flag since 111 🏴

  • Chromium Browsers:

    Dedicated Workers: Available since version 80 ✔️

    Shared Workers: Available since version 83 ✔️

    Service Workers: Available since version 91 ✔️

  • Webkit:

    Safari Desktop: Available since Safari 14.1 ✔️

    Safari Mobile (iOS): Available since Safari 15 ✔️


[#57700] Friday, May 19, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
kaitlynnb

Total Points: 402
Total Questions: 96
Total Answers: 109

Location: Trinidad and Tobago
Member since Fri, May 8, 2020
4 Years ago
kaitlynnb questions
;