npm install --global --production windows-build-tools

윈도우즈에서 서드파티모듈 빌드에 필요한 내용을 설치하는 방법으로 간단하게 msbuild error를 해결할 수 있다.

nodejs에서 서드파티 모듈을 설치하고 GIT이나 SVN으로 버전관리를 하는 경우

서드파티 모듈을 관리 하는 2가지방법이 있다.


1. npm install --save [서드파티모듈]

첫번째로 서드파티 모듈을 npm으로 설치할때 --save옵션을 주게 되면

package.json의 dependencies에 서드파티 모듈의 정보가 쌓이게 된다.

{

  "name": "",

  "version": "1.0.0",

  "description": "",

  "main": "index.js",

  "scripts": {

    "test": "echo \"Error: no test specified\" && exit 1"

  },

  "repository": {

    "type": "git",

    "url": ""

  },

  "author": "",

  "license": "ISC",

  "dependencies": {

    "body-parser": "^1.15.2",

    "cors": "^2.8.1",

    "ejs": "^2.5.5",

    "express": "^4.14.0",

    "formidable": "^1.0.17",

    "lwip": "0.0.9",

    "mongoose": "^4.7.6"

  }

}

버전 관리를 할때는 node_modules을 제외하고 커밋한 후에 다른 곳에서 개발을 할때는 npm install을 통해 

dependencies의 서드파티모듈을 다운받아 개발을 진행하면 된다. 하지만 이럴경우 dependencies의 서드파티 모듈의 버전 정보가 정확히 기입되어 있어야 서드파티 모듈의 버전이 달라져서 생기는 오류를 피할수있다.

예를들어 ejs: ">=2.5.5"라고 되어있다면 2.5.5이상의 버전을 받기 때문에 만약 상위 버전으로 업데이트가 되었고 호환되지 않는다면

에러가 발생할수도있다.


2. npm install --ignore-script

두번째로  서드파티 모듈을 npm으로 설치할때 --ignore-script옵션을 주게 되면 빌드 되지 않은 형태로 node_modules에 다운로드 되게된다.

버전 관리를 한때는 node_modules를 포함하여 커밋을 하고 다른 곳에서 개발을 할때는 npm rebuild를 통해

빌드가 필요한 모듈을 빌드하여 개발을 진행할 수 있다. 이 경우 서드파티 모듈을 다운받을 필요가 없기때문에 인터넷이 되지 않는곳에서 유용하게 사용할수있고 서드파티 모듈의 버전이 달라 지는 경우가 없기때문에 버전 관리 툴을 통해 새로운 환경에서 개발할때 에러 발생 없이 작업을 진행할 수 있는 장점이 있다.

Linux 
GET              R/s 3534 3494 3568 3580 3528 
CLUSTER GET    R/s 11987 11565 11950 12042 12056 
GET DB INSERT   R/s 2251 2201 2167 2207 2132 
GET DB SELECT   R/s 2436 2512 2407 2457 2496 

Windows 
GET               R/s 725 730 721 760 723 
CLUSTER GET     R/s 3072 3129 3421 2912 3203 
GET DB INSERT    R/s 611 623 605 632 610 
GET DB SELECT   R/s 672 691 701 698 682


동일한 하드웨어 스펙에서 첫번째로 리눅스로 확인, 두번째로 윈도우즈로 확인했을때

동일한 어플리케이션의 성능의 차이가 최고 5배정도 까지 난다. 

iocp로 구현된 windows와 epoll로 구현된 linux의 성능차이가 이렇게 까지 벌어진다는 것은 뭔가

node.js가 iocp를 지원하면서 뭔가 문제가 있는거 같다고 한다.


http://stackoverflow.com/questions/9243221

'Node.js' 카테고리의 다른 글

nodejs msbuild error  (0) 2017.06.06
nodejs 서드파티 모듈 버전 관리  (0) 2017.06.06
mybatis for nodejs  (0) 2015.05.15
node.js 서버에서 GET/POST Request 요청 전송하기  (0) 2014.12.02
nodejs에서 mysql를 사용하던중 Mybaist같은 Data base 개발 프레임 워크가 없나 찾아 보았습니다. mybatisnodejs와 nobatis가 있지만 사용법을 잘모르겠어서 조잡하게나마 mybatis처럼 만들어 보았습니다. sax parser를 사용한 xml 파서인 xml-digester를 사용해서 만들었고 사용법은 아래 내용을 참고하시면 되고 mysql module이 필요하다는 것을 미리 말씀드립니다. npm install yhbatis로 module을 받은후에 서버 시작 부분에서 모듈을 global로 설정 및 생성하시면 다른 곳에서 사용하기 편리합니다.
시작 전에 서버를 시작할 위치에 명령프롬프트 창을 켜서 npm install request를 설치해줍니다.

+ Recent posts