문제

nodejs 프로젝트에서 csv-parse를 활용하기위해 추가하던 중 다음과 같은 에러가 발생했다.

[ec2-user@ip-123-123-123-123 some_project]$ node index.js 
/home/ec2-user/some_project/node_modules/csv-parse/lib/sync.js:9
({StringDecoder} = require('string_decoder')); ^ ReferenceError: Invalid left-hand side in assignment at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:373:25) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object. (/home/ec2-user/log_visualize/index.js:1:79) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10)


원인추정

node 버전문제였다. 사용하던 버전의 엔진이 문법을 이해하지 못하는 것으로 추정한다. 

[ec2-user@ip-123-123-123-123 some_project]$ node -v
v4.4.5


해결

8.9.0 버전으로 업데이트를 해본 결과 정상적으로 동작하는 것을 확인하였다.

npm cache clean -f
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 8.9.0
nvm alias default 8.9.0


한문장씩 해석해보면,

npm cache clean -f

npm 재설치 이전에 캐시를 지워준다.

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
. ~/.nvm/nvm.sh

curl로 nvm을 재설치 해준다. 버전 0.33.6을 이용했다. 이 블로그 글을 보시는 분께서는 최신버전을 미리 확인하고 다운로드 바란다.

nvm install 8.9.0

그리고 nvm을 이용해서 원하는 버전의 node를 설치한다.

nvm alias default 8.9.0

기본 사용 node 버전을 설정해준다. 

설정하지 않을 경우, 터미널 재접속을 할 때 이전에 사용하던 버전으로 세팅된다.


이후, 다시 node를 이용하여 피키지를 실행해본 결과, 정상적으로 동작하였다.




저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by RaJePhon


티스토리 툴바