Ich bin neu in ES6 (ECMAScript 6) und möchte das Modulsystem im Browser verwenden. Ich habe gelesen, dass ES6 von Firefox und Chrome unterstützt wird, erhalte jedoch den folgenden Fehlerexport
Uncaught SyntaxError: Unexpected token import
Ich habe eine test.html-Datei
<html>
<script src="test.js"></script>
<body>
</body>
</html>
und eine test.js Datei
'use strict';
class Test {
static hello() {
console.log("hello world");
}
}
export Test;
Warum?
javascript
html
ecmascript-6
module
es6-modules
cdarwin
quelle
quelle
<script type="module"></script>
sicherzustellen, dass Sie hinzufügen, dass Sie sonst diesen Fehler erhalten. Ich schlug ständig mit dem Kopf gegen die Wand und tat<script>import ... </script>
wissentlich, dass Chrome jetzt ES6-Module ohne Flags unterstützen soll. Dann bemerkte ich, dass das type-Attribut benötigt wurde, um dem Browser anzugeben, dass es sich um ein ES6-Modul handelt, ohne das Sie genau das erhalten Error.Antworten:
Viele moderne Browser unterstützen jetzt ES6-Module. Solange Sie Ihre Skripte (einschließlich des Einstiegspunkts in Ihre Anwendung) importieren,
<script type="module" src="...">
funktioniert dies.Weitere Informationen finden Sie unter caniuse.com : https://caniuse.com/#feat=es6-module
quelle
Sie können ES6-Module in Google Chrome Beta (61) / Chrome Canary ausprobieren.
Referenzimplementierung von ToDo MVC durch Paul Irish - https://paulirish.github.io/es-modules-todomvc/
Ich habe grundlegende Demo -
//app.js import {sum} from './calc.js' console.log(sum(2,3));
//calc.js let sum = (a,b) => { return a + b; } export {sum};
<html> <head> <meta charset="utf-8" /> </head> <body> <h1>ES6</h1> <script src="app.js" type="module"></script> </body> </html>
Ich hoffe es hilft!
quelle
<script type="module"></script>
sicherzustellen, dass Sie hinzufügen, dass Sie sonst diesen Fehler erhalten. Ich schlug ständig mit dem Kopf gegen die Wand und tat<script>import ... </script>
wissentlich, dass Chrome jetzt ES6-Module ohne Flags unterstützen soll. Dann bemerkte ich, dass das type-Attribut benötigt wurde, um dem Browser anzugeben, dass es sich um ein ES6-Modul handelt.js
Quelle haben).Leider werden Module derzeit von vielen Browsern nicht unterstützt.
Gefunden auf MDN
quelle
es hat bei mir funktioniert, indem
type="module"
ichimport
meine mjs zum Skript hinzugefügt habe:<script type="module"> import * as module from 'https://rawgit.com/abernier/7ce9df53ac9ec00419634ca3f9e3f772/raw/eec68248454e1343e111f464e666afd722a65fe2/mymod.mjs' console.log(module.default()) // Prints: Hi from the default export! </script>
Siehe Demo: https://codepen.io/abernier/pen/wExQaa
quelle