У меня была похожая ситуация, но я использую php для внедрения скрипта. Я использую только vanilla javascript, и мне нужно было добавить расширение ".js" в мой импорт, чтобы оно работало. Я знаю, что с React расширение .js не нужно, но я предполагаю, что это будет зависеть от среды, в которой вы работаете. Надеюсь, это поможет кому-то еще.

ичного проекта я пытаюсь использовать импорт ES6 для написания более чистого кода. В качестве первого теста я пишу объект, который должен генерировать меню. Весь код работает, когда я непосредственно загружаю класс, но при использовании импорта и экспорта в ES6 выдает ошибку «Uncaught SyntaxError: Неожиданный идентификатор» наimport линия вmain.js

У меня есть следующие файлы:

активы / JS / menu.module.js

'use strict';

export default class Menu
{ ... }

активы / JS / main.js

import Menu from "./menu.module.js";

window.addEventListener('DOMContentLoaded', () => {
    const menu = new Menu();
});

index.html

<script type="module" src="assets/js/menu.module.js"></script>
<script src="assets/js/main.js">

Обратите внимание, что это только соответствующие строки кода.

С помощью<script type="module"> линия или нет, казалось, не имеет никакого значения для меня. У меня есть и флаги chrome для экспериментальных, и для модулей ES6, так как без них я получил сообщение об ошибкеimport не определяется

Версия Chrome будет 62, поэтому, согласно различным источникам (включая сам журнал обновлений Google), это должно работать, даже без флагов.

Может кто-нибудь просветить меня, почему это не работает, и что я делаю неправильно?

 Bergi04 дек. 2017 г., 12:53
не должныmain.js нужноtype="module" также? В конце концов, он использует синтаксис модуля.
 ZeroThe2nd04 дек. 2017 г., 13:29
@ Берги Это, казалось, решило проблему. Спасибо :-)
 Bergi04 дек. 2017 г., 12:53
Твойwindow.addEventListener( в вызове отсутствует закрывающая скобка
 ZeroThe2nd04 дек. 2017 г., 12:45
@BoyWithSilverWings забыл добавить это, только что добавил. Это наimport линия вmain.js
 Boy With Silver Wings04 дек. 2017 г., 12:44
Есть ли связанный номер строки? В каком файле ошибка?

Ответы на вопрос(2)

Решение Вопроса

type="module" кmain.js импортная линия решила проблему. Все работает сейчас.

Спасибо всем, кто откликнулся и попытался помочь.

 ZeroThe2nd18 янв. 2019 г., 13:24
@TomRussell Какой комментарий? Потому что я не могу его найти. Вопрос для меня был сtype="module" вещь.
 Tom Russell09 янв. 2019 г., 08:17
В предыдущем комментарии вы сказали, что добавление точки с запятой исправило это. Теперь вы говорите, что добавление типа исправило это.

menu.module.js в то время как это на самом деле называетсяmenu.js.

PS: Насколько я помню, вы могли бы также бросить.js из заявления на импорт.

 Hunter26 сент. 2018 г., 21:36
У меня была похожая ситуация, но я использую php для внедрения скрипта. Я использую только vanilla javascript, и мне нужно было добавить расширение ".js" в мой импорт, чтобы оно работало. Я знаю, что с React расширение .js не нужно, но я предполагаю, что это будет зависеть от среды, в которой вы работаете. Надеюсь, это поможет кому-то еще.

Ваш ответ на вопрос