프로그래밍 언어/HTML,CSS,JS

Node.js-SyntaxError : 예기치 않은 토큰 가져 오기

Rateye 2021. 6. 14. 10:15
728x90
반응형
질문 : Node.js-SyntaxError : 예기치 않은 토큰 가져 오기

나는 무엇이 잘못되었는지 이해하지 못한다. 노드 v5.6.0 NPM v3.10.6

코드:

function (exports, require, module, __filename, __dirname) {
    import express from 'express'
};

오류:

SyntaxError: Unexpected token import
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:387:25)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:140:18)
    at node.js:1001:3
답변

이후 노드 13 세 이상 노드 (13)는 , 당신이 중 하나를 사용할 수 있습니다 .mjs 확장, 또는 세트 {"type": "module"} 당신의 package.json에 있습니다. --experimental-modules 플래그를 사용할 필요 가 없습니다. 모듈은 이제 node.js에서 안정된 것으로 표시됩니다.

노드 12 년부터 노드 (12) , 당신이 중 하나를 사용할 수 있습니다 .mjs 확장, 또는 세트 "type": "module" 당신의 package.json에 있습니다. --experimental-modules 플래그로 노드를 실행해야합니다.

노드 9에서 노드 9 , 그것은 플래그 뒤에 활성화하고 사용합니다 .mjs 확장.

node --experimental-modules my-app.mjs

import 는 실제로 ES6의 일부 이지만 안타깝게도 아직 기본적으로 NodeJS에서 지원되지 않으며 최근 브라우저에서 지원이 시작되었습니다.

MDN 및 이 노드 문제 에 대한 브라우저 호환성 표를 참조하십시오.

Node.js의 ES6 모듈에 대한 James M Snell의 업데이트 (2017 년 2 월) :

작업이 진행 중이지만 시간이 좀 걸릴 것입니다. 현재 최소 1 년 정도를 검토하고 있습니다.

지원이 기본적으로 표시 될 때까지 ( 이제 Node 13+에서 stable로 표시됨 ) require 문을 계속 사용해야합니다.

const express = require("express");

NodeJS에서 새로운 ES6 / 7 기능을 정말로 사용하고 싶다면 Babel을 사용하여 컴파일 할 수 있습니다. 다음은 예제 서버 입니다.

출처 : https://stackoverflow.com/questions/39436322/node-js-syntaxerror-unexpected-token-import
728x90
반응형