Подтвердить что ты не робот

ES6 в браузере: Uncaught SyntaxError: Неожиданный импорт маркера

Я новичок в ES6 (ECMAScript 6), и я бы хотел использовать его систему модулей в браузере. Я читаю, что ES6 поддерживается Firefox и Chrome, но я получаю следующую ошибку, используя export

Uncaught SyntaxError: Unexpected token import

У меня есть файл test.html

<html>
    <script src="test.js"></script>
<body>
</body>
</html>

и файл test.js

'use strict';

class Test {

    static hello() {
        console.log("hello world");
    } 
}

export Test;    

Почему?

4b9b3361

Ответ 1

Многие современные браузеры теперь поддерживают модули ES6. Пока вы импортируете свои скрипты (включая точку входа в ваше приложение), используя <script type="module" src="...">, это будет работать.

Посмотрите на caniuse.com для более подробной информации:https://caniuse.com/#feat=es6-module

Ответ 2

Вы можете попробовать модули ES6 в Google Chrome Beta (61)/Chrome Canary.

Справочная реализация ToDo MVC Пола Айриша - https://paulirish.github.io/es-modules-todomvc/

У меня есть базовая демонстрация -

//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>

Надеюсь, это поможет!

Ответ 3

К сожалению, модули не поддерживаются многими браузерами прямо сейчас.

В настоящее время эта функция только начинает реализовываться в браузерах. Он реализован во многих транспилерах, таких как TypeScript и Babel, а также в таких пакетах, как Rollup и Webpack.

Найдено на MDN

Ответ 4

он работал для меня, добавляя type="module" к скрипту, import my mjs:

<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>

См. Демонстрационную версию: https://codepen.io/abernier/pen/wExQaa