핀테크 서비스 프론트엔드 개발자 취업 완성 2기/JS

[JS] regeneratorruntime is not defined 에러 해결 방법.

flyda 2022. 5. 2. 13:03

main.html 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.27.2/axios.min.js" integrity="sha512-odNmoc1XJy5x1TMVMdC7EMs3IVdItLPlCeL5vSUPN2llYKMJ2eByTTAIiiuqLg+GdNr9hF6z81p27DArRFKT7A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  <link rel="stylesheet" href="./main.css">
  <script defer src="./main.js"></script>
</head>

<body>
  <div class="movies"></div>
  <div class="another-movies"></div>
  <button>More..</button>
</body>

</html>

 

main.js

const moviesEl = document.querySelector('.movies')
const anotherMoviesEl = document.querySelector('.another-movies')
getMovie(1, moviesEl)
getMovie(1, anotherMoviesEl)

const btnEl = document.querySelector('button')
btnEl.addEventListener('click', () => {
  getMovie(2, moviesEl)
})

async function getMovie(page, containerEl) {
  const { data } = await axios({
    url: `https://www.omdbapi.com?apikey=발급받은키&s=frozen&page=${page}`,
    method: 'GET'
  })
  console.log(data)
  const movies = data.Search
  renderMovies(movies, containerEl)
}
function renderMovies(movies, containerEl) {
  movies.forEach(movie => {
    console.log(movie)
    const movieEl = document.createElement('div')
    movieEl.textContent = movie.Title
    containerEl.append(movieEl)
  })
}

 

이 코드를 실행하는 데, PARCEL 번들러를 사용하니까 다음과 같은 에러가 났다.

 

강사님이 해결해 주셨는데, 그냥 regenerator-runtime을 설치하고 js 파일에 import를 해주니까 실행이 되었다. 

npm info regenerator-runtime

npm i regenerator-runtime

 

그리고 import를 추가한 코드는 다음과 같다 

import 'regenerator-runtime'
const moviesEl = document.querySelector('.movies')
const anotherMoviesEl = document.querySelector('.another-movies')
getMovie(1, moviesEl)
getMovie(1, anotherMoviesEl)

const btnEl = document.querySelector('button')
btnEl.addEventListener('click', () => {
  getMovie(2, moviesEl)
})

async function getMovie(page, containerEl) {
  const { data } = await axios({
    url: `https://www.omdbapi.com?apikey=발급받은키&s=frozen&page=${page}`,
    method: 'GET'
  })
  console.log(data)
  const movies = data.Search
  renderMovies(movies, containerEl)
}
function renderMovies(movies, containerEl) {
  movies.forEach(movie => {
    console.log(movie)
    const movieEl = document.createElement('div')
    movieEl.textContent = movie.Title
    containerEl.append(movieEl)
  })
}