728x90

node.js 를 사용하면서 가장 애를 먹는 것중 하나가 설치한 모듈을 찾지 못한다는 메세지를 만날때 입니다. 환경에 따라 모듈의 설치 경로가 달라질 수 있고, node.js 가 설치된 모듈을 찾아가는 순서에 영향을 받기 때문입니다. 간단한 몇 가지 명령을 통해 node.js 가 어떤 순서로 모듈을 탐색하는지 확인하고 글로벌 모듈로 설치된 경우 이를 명시적으로 node.js 가 이용할 수 있도록 알려줌으로써 어느정도 문제를 해결할 수 있습니다.


아래와 같이 npm 에서 -g 옵션을 이용하여 모듈을 설치하면 글로벌 모듈로 설치가 됩니다. 프로젝트에 관계 없이 설치된 모듈을 이용할 수 있어야 하는 것이지요. 일부 환경에서는 sudo 명령을 이용하여 관리자 권한으로 설치를 해야 할 수도 있습니다.


$ npm install -g [#모듈이름#]


또는


$ sudo npm install -g [#모듈이름#]


이렇게 -g 옵션을 이용하여 글로벌 모듈로 설치하는 경우, 그 경로는 어떻게 될까요? 아래와 같은 명령을 이용하여 글로벌 모듈로 설치하는 경우의 Path 를 확인할 수 있습니다.


$ npm root -g

/usr/local/lib/node_modules


간혹 글로벌 옵션을 이용하여 설치한 모듈을 찾을 수 없다고 나오는 문제를 겪고 있다면, 위의 명령으로 확인한 경로를 NODE_PATH 라는 환경 변수에 저장하여 node.js 가 글로벌 모듈을 찾을 때 참조할 수 있도록 명시적인 지정을 할 수 있습니다. 반복적으로 사용해야 하는 값이기 때문에 홈 디렉토리의 .bash_profile 파일에 포함하여 터미널 실행시 셋업되도록 하면 되겠습니다. 윈도 환경에서는 시스템 환경 변수에 넣어주면 됩니다.


~/.bash_profile 에 아래와 같이 환경 변수 추가


export NODE_PATH="/usr/local/lib/node_modules"


글로벌 모듈 이외에 현재 프로젝트에서 모듈을 찾아가는 탐색 순서를 확인하려면 아래와 같이 간단한 자바스크립트 구문을 node.js 를 이용하여 실행해보면 됩니다. 아래의 경로로 모듈을 찾아본 뒤, NODE_PATH 에 지정한 경로까지 탐색하여 현재 환경에서 모듈을 찾고 이용하게 됩니다. 


$ node -e "console.log(global.module.paths)"

[ '/Users/snoh/node_modules',

  '/Users/node_modules',

  '/node_modules' ]


- NoPD -



728x90
728x90

Node 의 새로운 버전이 릴리즈 되었습니다. Node 는 새로운 버전이 발표될 때마다 LTS (Long Term Support) 버전과 Stable 버전으로 나누어 공개하곤 합니다. 이번에 발표된 버전은 v4.4.2 (LTS) 버전과 v5.10.0 (Stable) 버전입니다. 아시는 분들은 아시겠습니다만 Stable 버전의 경우 이름의 뜻과는 달리 실험적인 기능들을 비롯한 덜 안정적인 기능들이 많이 들어간 버전이며 LTS 버전이 안정적인 버전이라고 생각하시면 되겠습니다.


Node 의 버전을 업데이트 하는 방법은 여러가지 있겠습니다만 개인적으로 추천드리는 방법은 n 을 이용하여 업데이트 하는 방법입니다. n 을 설치하고 사용하는 방법인 예전 포스팅에서 찾아보실 수 있습니다 (관련글 : http://ondemand.tistory.com/220) . n 은 여느 Node 패키지와 마찬가지로 NPM 을 이용하여 설치할 수 있습니다. 




간만에 또 한번 싱가폴에서 열심히 놀고 있는 서버에 접속을 했습니다. 업데이트를 하기 전 n 을 이용하여 현재 설치되어 있는 버전을 확인해 보았습니다. n 명령을 실행하면 현재 설치되어 있는 버전이 열거되며 활성화 되어 있는 버전은 특별히 밝은 색상과 o 표시가 되어 있어 식별이 쉽습니다. 




현재 설치되어 있는 버전이 두가지 이고 활성화된 버전은 4.2.4 로 확인됩니다. 새로 출시된 버전이 4.4.2 버전이니 n 명령을 이용해서 새로운 버전의 LTS 버전을 다운로드 받아 활성화 해보도록 하겠습니다. 명령은 무척 간단해서 n 뒤에 파라메터로 버전명을 기술해 주면 됩니다. 






약간의 시간동안 다운로드를 받고 설치하는 과정이 끝나면 준비 완료입니다. 다시 한번 n 명령을 이용해서 버전을 확인해보면 새로운 버전이 추가된 것을 확인할 수 있고 활성화까지 된것을 볼 수 있습니다. 느낌이 오셨겠지만 n 을 이용하면 현재 머신에서 어떤 버전을 활성화 해서 사용할 것인지도 쉽게 선택할 수 있습니다. 설치된 버전 목록에서 버전 넘버를 확인한 후, 다시 한번 n 명령 뒤에 해당 버전을 기술해 주면 됩니다. 저는 0.10.28 버전으로 다시한번 전환해 봤습니다.




네, 참 쉽습니다 ;-) 


Nodejs.org 공식 웹사이트에서 새로운 릴리즈 확인해보기 [바로가기]






728x90
728x90

간밤에 Node.js 의 v4.2.4 (LTS) 버전이 새롭게 업데이트 되었습니다. 이번 버전 업데이트에서도 정말 많은 버그들이 Fix 가 되었습니다. 자세한 업데이트 내역은 Node 공식 사이트에 등록된 릴리즈 노트를 확인해 보시기 바랍니다. 복기를 위해 간만에 개발용 리눅스 머신에 LTS 버전을 업데이트 하면서 사용했던 커맨드를 기록삼아 남겨둡니다. 혹시나 "Node.js 는 어떻게 업데이트 해야 하나요?" 하시는 분들을 위해 도움이 되었으면 합니다.


Node.js 는 두가지 버전으로 나뉘어져 출시(?)가 되고 있습니다. 짝수 버전에 해당하는 LTS 와 홀수 버전에 해당하는 Stable 이 바로 그것입니다. LTS 는 Long Term Support 의 약자로 Node.js 에서만 사용하는 용어는 아니고 말 그대로 "오랫동안 지원되는" 버전으로 안정성, 호환성에 포커스를 맞춘 버전입니다. 반면 Stable 버전은 용어의 의미와 다소 다르게 새로운 기능들이 적극적으로 반영되는 버전이니 (=이슈가 많을 수 있는?) 사용시 이를 감안해야 하겠습니다.




Node.js v4.2.4 (LTS) 버전 릴리즈 노트 확인하기 [바로가기]


Node.js 에서 사용하는 패키지들은 NPM 을 통해서 다들 관리를 하고 계실겁니다. 그런데 NPM 은 Node.js 자체의 버전을 관리해 주지는 않습니다. Node.js 의 버전을 관리하기 위해서는 NPM 을 이용하여 n 을 먼저 설치해야 합니다. n 은 Node.js 를 관리하기 위한 전용 도구로 이를 통해서 설치한 버전들은 특정한 경로에 저장되어 손쉽게 Node.js 의 버전을 변경해 가면서 활용할 수 있게 해줍니다. 참 편하쥬?




작업을 시작하기 전 노드의 버전을 확인해보면 v0.10.28 입니다. 오랫동안 쓸일이 없었던 가상머신이라 간만에 확인했더니 버전이 무척 낮습니다 ^^ 혹시나 하는 마음에 캐시를 비워주고 우선 n 으 설치했습니다. n 의 사용법은 무척 간단한데요 설치하려는 버전을 파라메터로 전달해 주면 됩니다. 새로 릴리즈된 버전이 4.2.4 이니 파라메터로 4.2.4 를 전달하면 알아서 새로운 버전을 다운로드 받아 설치를 진행합니다. 이렇게 다운로드 된 버전은 환경에 따라 다소 다를 수 있겠지만 설치 과정에 나온 "mkdir" 항목에 나온 경로에 저장되게 됩니다.


새로운 버전을 돌려보니 좀 이슈가 있다? 그러면 간단히 "n 0.10.28" 의 식으로 다시 버전을 변경하면 됩니다. 스샷에 보이는 것처럼 이미 로컬에 다운로드 되어 있기 때문에 별도로 다운로드 되는 과정 없이 버전이 변경됩니다. Node.js 를 이용한 개발도 편하지만 관리도 편한것이 사람들에게 지속적으로 사랑받는 이유가 아닐까 싶습니다!



728x90
728x90

빌드 2015 컨퍼런스에서 발표된 비주얼 스튜디오 코드(Visual Studio Code)는 크로스 플랫폼을 지향하는 텍스트 중심의 개발도구입니다. 마이크로소프트가 적극적으로 다른 플랫폼에 대해서 공략을 시작했다는 평을 받으며 많은 사람들이 환호하고 있는 툴이기도 합니다. 맥에서 강력한 인텔리센스(Intellisense) 기능을 이용할 수 있어서 화제입니다만 맥에서 인텔리센스를 구동시키는게 생각보다 쉽지 않더군요 (저만 그런 것일수도...)


여기저기 찾아보고 시행착오를 겪은 끝에 인텔리센스를 활용할 수 있는 방법을 찾아냈고 (사실 원래 있었지만 저만 못찾아냈던...) 같은 시행착오를 겪는 분이 계실것 같아서 간단하게 설치 순서와 필요한 패키지들을 정리해 봤습니다. 비주얼 스튜디오 코드 공식 웹사이트에 잘 설명되어 있는 부분입니다만 영어의 압박으로 꼼꼼히 읽지 않으면 놓치기 쉬운 부분들이 많더군요. 잘 안되시는 분들은 아래의 순서를 따라해 보시기 바랍니다.


  1. "비주얼 스튜디오 코드" 맥 버전을 설치합니다
    • 설치라고 되어 있긴 합니다만 공식 사이트에서 배포하는 zip 파일을 받는게 전부입니다.
      • 비주얼 스튜디오 코드 다운로드 : https://code.visualstudio.com/
    • 압축을 풀면 나오는 비주얼 스튜디오 코드 실행파일을 어플리케이션 폴더로 끌어놓아 런치패드를 통해 실행 가능하게 만들면 좋겠죠
    • 혹시나 터미널을 자주 쓴다면 .bashrc 파일이나 .bash_profile 에 아래의 스크립트를 넣으면 편리합니다
      • code () {
            if [[ $# = 0 ]]
            then
                open -a "Visual Studio Code"
            else
                [[ $1 = /* ]] && F="$1" || F="$PWD/${1#./}"
                open -a "Visual Studio Code" --args "$F"
            fi
        }

  2. 인텔리센스를 위해 TypeScript Definition Manager 를 설치합니다
    • 비주얼 스튜디오 코드는 TypeScript 가 사용하는 *.d.ts 파일을 이용하여 인텔리센스를 제공합니다
    • 이미 만들어진 *.d.ts 파일을 이용하기 위하여 TypeScript Definition Manager 를 설치해야 합니다
      • TSD 설치 안내 페이지 : http://definitelytyped.org/tsd/
      • TSD 설치를 하기 위해서는 node 가 먼저 설치되어 있어야 합니다 (npm을 이용...)
      • $ npm install tsd -g


  3. TSD를 이용하여 필요한 언어/모듈/패키지를 검색하여 설치합니다
    • TSD 의 Query 명령어를 이용하여 필요한 패키지를 조회합니다 (node.js 에 대한 조회)
      • $ tsd query node
        >> tsd 0.5.7
        VersionMatcher.filter; gt; 0.11.0; 0.10.0
         - node/node.d.ts : <head> : 2015-05-07 05:06
        
    • 조회한 패키지의 이름을 이용하여 설치 명령을 내립니다 (--action install 을 추가)
      • $ tsd query node --action install >> tsd 0.5.7 VersionMatcher.filter; gt; 0.11.0; 0.10.0 - node/node.d.ts : <head> : 2015-05-07 05:06 >> running install.. >> written 1 file: - node/node.d.ts


  4. 설치가 잘 되었는지 확인해 봅니다
    • 사용자 루트 경로에서 "typing" 이라는 폴더가 생성되었는지 확인합니다
    • 해당 폴더 안에 "node" 라는 폴더가 있는지 보고, 그 안에 "node.d.ts" 파일이 존재하는지 확인합니다
    • Node Express Generator (참고 : https://code.visualstudio.com/Docs/nodejs) 로 만든 스캐폴딩 프로젝트의 app.js 를 엽니다
    • 14 라인의 __dirname 이라는 node 시스템 변수가 인식되지 않고 있습니다만... "커맨드+점(.)"을 눌러 Reference 를 추가해 줍니다
    • 코드 상단에 Reference 태그가 추가됩니다
    • 이후 테스를 위해 http 모듈을 추가하고 인텔리센스가 동작하는지 봅니다. 잘 되는군요.

좀 돌아왔습니다만 이제 TSD 파일만 잘 설치하면 왠만한 코드는 정말 간편하게 만들 수 있을 것 같습니다. 비주얼 스튜디오 코드로 맥에서도 훌륭한 인텔리센스와 가벼운 에디터를 사용해 보시기 바랍니다!





728x90

+ Recent posts