Модули ES6 в Chrome - PullRequest
       5

Модули ES6 в Chrome

0 голосов
/ 25 октября 2018

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

uncaught SyntaxError: Неожиданный токен {

... выделение оператора импорта в модуле (script1.js, ниже), который пытается импортировать модуль.Я видел много ссылок на подобные проблемы, но ни одно из предложений по исправлению ситуации не помогло мне.Если бы вы поняли, что я делаю не так, я был бы признателен за вашу помощь ...

вот HTML ...

<html>
<head>
    <script src="lib1.js" type="module"></script>
    <script src="script1.js"></script>
</head>
<body>
</body>
</html>

вот модуль (lib1.js)...

export function doSomething() {
    alert("in module lib1");
}

вот скрипт (script1.js), который пытается импортировать модуль ...

import { doSomething } from "lib1.js";
doSomething();

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

Ваш код не будет работать ни в одном браузере.Это правильный способ сделать это:

index.html

<html>
<head>
    <script src="script.js" type="module"></script>
</head>
<body>
</body>
</html>

lib.js

export function doSomething() {
    alert("in module lib1");
}

script.js

import { doSomething } from "./lib.js";
doSomething();
0 голосов
/ 06 мая 2019

<script src="script.js" type="module"></script> - это ключ ... позор в сообщении об ошибке в Chrome

0 голосов
/ 25 октября 2018

РЕДАКТИРОВАТЬ: Примерно через час после того, как я почесал голову и обнаружил, что мой ответ (предварительное редактирование) было отклонено, я получил следующее:

lib.js:

function doSomething() {
    console.log('in module lib');
}
export {doSomething};

script.js:

import { doSomething } from './lib.js';
doSomething();

index.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script type="module" src="script.js"></script>
</body>
</html>

lib.js, script.js и index.html находятся в одном каталоге.

Я добавил .js к import { doSomething } from './lib.js';, потому что иначе это не сработало.Согласно Mozilla некоторые упаковщики могут разрешать или требовать использования расширения для module-name.

, но это работало только в Firefox Quantum (версия 62.0.3).Я включил Экспериментальный JavaScript в Chrome (версия 70.0.3538.77) для:

chrome: // flags / # enable-javascript-harmony

без признаков успеха, но, учитывая, что это работает на Firefox и что эта таблица совместимости показывает, что Chrome и Firefox на одном уровне совместимости, делает меня более запутанным, поэтому я, вероятно, в конечном итоге задам вопросвопрос относительно всего этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...