import 시 unexpected identifer 에러

zenibako.lee
3 min readMar 8, 2020

--

const bodyParser = require('body-paraser')import bodyParser from 'body-parser'
^^^^^^^^^^
SyntaxError: Unexpected identifier

일반적으로 node 예제들을 보면

express 등 모듈들을 require문을 통해서 불러오고 있다.

그러나 import문도 가끔 써봐서 써보려고 하니 이런 에러가 발생.

원인은 무엇일까?

구체적으로 어떤 문제였고 어떠한 해결방식을 취한걸까?

최근 브라우저에서 모듈을 가져오거나 내보낼 때 사용하는
import/export 를 node.js에서는 사용할 수 없다.

node.js 에서는 기본적으로 module 을 지원하고 있었으며,
common module 방식이라는 이름으로
require/exports 을 이용해 유사한 기능을 할 수 있다.

그러나 es6이상의 js에서는 AMD(Asynchronous Module Definition)
방식의 모듈시스템을 표준으로 사용한다.
module.export , import, export로 알고있는 바로 그 방식이다.

해당 방식의 모듈시스템을 node에서 사용하기 위해서는
experimental-modules라는 옵션을 node에 적용하거나,
babel과 같은 transfile 패키지를 적용해야 한다.

babel 은 transfiling을 담당하는 패키지이다.

es6이상의 문법으로 작성된 js구문을 es5버젼으로 번역(transfile)하여,
common js방식의 모듈시스템에서 돌아갈 수 있도록 하는 것이다.

babel의 구체적인 적용방법은

해당 주소로 갈음한다.

결론:

node.js는 commonjs의 모듈시스템을 표준으로 하고있고,

amd(Es6)방식의 모듈시스템을 사용하기 위해서는 추가 작업이 필요하다.

--

--

zenibako.lee
zenibako.lee

Written by zenibako.lee

backend engineer, JS, Node, AWS

No responses yet