ES2015 import doesn't work (even at top-level) in Firefox
Actually the error you got was because you need to explicitly state that you're loading a module - only then the use of modules is allowed:
<script src="t1.js" type="module"></script>
I found it in this document about using ES6 import in browser. Recommended reading.
Fully supported in those browser versions (and later; full list on caniuse.com):
- Firefox 60
- Chrome (desktop) 65
- Chrome (android) 66
- Safari 1.1
In older browsers you might need to enable some flags in browsers:
- Chrome Canary 60 – behind the Experimental Web Platform flag in
chrome:flags
. - Firefox 54 –
dom.moduleScripts.enabled
setting inabout:config
. - Edge 15 – behind the Experimental JavaScript Features setting in
about:flags
.
This is not accurate anymore. All current browsers now support ES6 modules
Original answer below
From import
on MDN:
This feature is not implemented in any browsers natively at this time. It is implemented in many transpilers, such as the Traceur Compiler, Babel or Rollup.
Browsers do not support import
.
Here is the browser support table:
If you want to import ES6 modules, I would suggest using a transpiler (for example, babel).
Just using .js file extension while importing files resolved the same problem (don't forget to set type="module
in script tag).
Simply write:
import foo from 'foo.js';
instead of
import foo from 'foo';