>웹 프론트엔드 >JS 튜토리얼 >Node.js에서 'SyntaxError: Unexpected token import' 메시지가 나타나는 이유는 무엇입니까?

Node.js에서 'SyntaxError: Unexpected token import' 메시지가 나타나는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-19 04:41:53544검색

Why Am I Getting a

Node.js: 예기치 않은 토큰 가져오기 오류 이해

Node.js에서 일반적으로 "SyntaxError: 예기치 않은 토큰 가져오기" 오류가 발생합니다. 지원되지 않는 환경에서 가져오기 구문을 사용하려고 시도하고 있음을 나타냅니다.

import 구문은 모듈을 가져올 수 있는 ES6(ECMAScript 2015)의 기능입니다. 하지만 Node.js에서는 다양한 버전이 출시되면서 ES6 모듈 가져오기 지원이 점차 도입되었습니다.

Node.js 버전의 ES6 모듈 지원

  • 노드 13: 가져오기를 통한 모듈 가져오기는 안정적이며 완벽하게 지원됩니다. .mjs 파일을 사용하거나 package.json 파일에서 "type": "module"을 설정할 수 있습니다.
  • Node 12: Node 13과 유사하게 .mjs 파일을 사용하여 모듈을 가져올 수 있습니다. 또는 package.json에서 "type": "module"을 사용합니다. 그러나 --experimental-modules 플래그를 사용하여 Node를 실행해야 합니다.
  • Node 9: Node 9에서 모듈 가져오기는 아직 실험적이며 .mjs 파일을 사용해야 하며 --experimental-modules 플래그.

Node 13 이전, ES6 모듈 가져오기가 지원되지 않았습니다

Node.js 13 이전 버전에서는 가져오기 구문이 기본적으로 지원되지 않았습니다. 따라서 이전 버전에서 이 오류가 발생하는 경우 런타임 환경에서 지원하지 않는 JavaScript 구성을 사용하려고 하기 때문입니다.

클래식 Require 문으로 대체

이 문제를 해결하려면 가져오기를 지원하지 않는 Node.js 버전에서 모듈을 가져올 때 기존의 require 문을 사용하는 방식으로 되돌아가야 합니다. 예:

const express = require("express");

ES6/7 기능용 Babel 사용

Node.js에서 ES6/7 기능을 사용하려면 코드를 컴파일하면 됩니다. 바벨을 사용합니다. Babel은 최신 JavaScript 구문을 이전 환경과 호환되는 코드로 변환하는 JavaScript 변환기입니다. 다음은 Babel을 사용하여 서버를 컴파일하는 예입니다.

npm install --save-dev babel-cli babel-preset-env
npx babel-node script.js

위 내용은 Node.js에서 'SyntaxError: Unexpected token import' 메시지가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.