Chrome 61: неожиданный импорт маркера

Запуск Chrome 61, который должен поддерживать загрузку модуля с помощью import.

В действительности для меня работает Paul demo. Однако, когда я пытаюсь это сделать, я получаю JS-ошибку "Неожиданный импорт токена". Кажется, что Chrome не имеет значения import:

test.html

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

test.js:

import {hello} from './something.js'
console.log(hello())

something.js

export {hello}
function hello() {
    return "hello world"
}

Почему Chrome не понимает "импорт"

Ответ 1

Это должно быть <script type=module src=test.js>. Весь синтаксис тонко изменен в сценариях модуля (import и export разрешены, а также строгий режим является обязательным).

Ответ 2

Наконец... понял это. chrome://flags поиск для import разрешить синтаксис import ES6. Перезапустите Chrome. Будь счастлив.

Ответ 3

Для тех из вас, кто хочет точно знать, что сработало для меня, это было как бы сочетание пары ответов сверху. Мне также пришлось включить возможности импорта ES6 в Chrome, набрав в строке URL хром://флаги и поискать "импорт".

Сначала HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Testing JavaScript Stuff</title>
</head>
<body>
    <script type="module">
        import { circleArea, squareArea } from './CalcArea.js';

        console.log(circleArea(2));
        console.log(squareArea(2));
    </script>
</body>
</html>

Таким образом, вы можете просто добавить тип "модуль" в свой тег скрипта, затем ниже вы импортируете. Для моего теста файл CalcArea.js:

const circleArea = r => 3.14 * (r ** 2);

const squareArea = s => s * s;

export {circleArea, squareArea};