js не импортирует модуль js правильно, даже если type=module вставлен в html

У меня есть класс js внутри movie.js, который я хотел бы импортировать в свой код на main.js, где я планирую с ним работать. Я боролся со следующей ошибкой: SyntaxError: объявления импорта могут появляться только на верхнем уровне модуля.

Я уже поместил тег type="module" в HTML и проверил, находятся ли импорт/экспорт в нужном месте. Я видел другие ответы на подобные вопросы, но ни один из них не решил проблему.

(Это соответствующий HTML)

<html>
 <head>
  <script src='main.js' async></script>
  <script src='movie.js' type="module" ></script>
 </head>
 <body>
  <a class="btn">Search</a>
 </body>
</html>
import Movie from './movie.js';

const btnSearch = document.querySelector(".btn");


btnSearch.addEventListener('click', function () {
    let filmeTeste = new Movie("The Lego Movie", 2014, "tt1490017", "Movie", "https://m.media-amazon.com/images/M/MV5BMTg4MDk1ODExN15BMl5BanBnXkFtZTgwNzIyNjg3MDE@._V1_SX300.jpg");
    console.log(`object test ${filmeTeste}`);
});
class Movie {
    constructor(title, year, imdbID, type, poster){
        this.title = title;
        this.year = year;
        this.imdbID = imdbID;
        this.type = type;
        this.poster = poster;
    };
}
export default Movie;

Я ожидаю, что объект будет напечатан в консоли, но сейчас он показывает мне только SyntaxError: объявления импорта могут появляться только на верхнем уровне модуля main.js: 1


person Carolina de Moraes    schedule 26.06.2019    source источник
comment
@jro Это сработало! Огромное спасибо!!   -  person Carolina de Moraes    schedule 26.06.2019


Ответы (1)


Вам также нужно добавить type="module" к другому тегу <script>, потому что он также использует модули.

<script src="main.js" async type="module"></script>
<script src="movie.js" type="module" ></script>
person Jack Bashford    schedule 26.06.2019
comment
<script src="movie.js" type="module" ></script> также не нужен в первую очередь, так как main.js уже импортирует/загружает его. - person loganfsmyth; 26.06.2019
comment
Да, @loganfsmyth, это правда. - person Jack Bashford; 26.06.2019