Node.js : npm install , outdated&update, uninstall 명령을 이용한 node 패키지관리


목차

  1. package.json을 이용한 패키지관리
  2. npm install <package name> --save
  3. npm outdated & npm update --save
  4. npm uninstall --save <package name>


package.json을 이용한 패키지 관리▲top

  • 참고 링크 : https://docs.npmjs.com/getting-started/using-a-package.json
    • 참고 링크로 걸어놓은 npm.js 공홈에 영어로 친절히 설명이 나와있으니 정독...을 하는게 제일 좋겠으나 ㅋ 나는 한국인인지라 자알 읽을 능력이 안된다 ㅋ
    • package.json은 내가 사용하고 있는 node.js에서 사용하고 있는 패키지들이 무엇이 있는지 적어놓는 영수증 같은 개념같다
    • npm을 이용해 이렇게 로깅된 영수증을 들고 다른 곳에 보여주면, 그곳에서 영수증에 적힌 패키지들을 보고 그대로 깔아준다.
    • 정리하자면,
      1. node패키지인 mongoose 적립해 주세요 : npm install mongoose --save
      2. package.json에 mongoose 설치정보 로깅됨
      3. node_modules폴더가 생기고, 그 안에 mongoose패키지관련 폴더들이 설치됨.
      4. git의 .gitignore 내용에 node_modules 폴더가 있다는 가정하에 (node_modules폴더 용량이 넘 커서 보통 ignore시킨다) 다른 컴퓨터에서 작업할 일이 생겨서 다른 컴퓨터에서 내 프로젝트를 git으로 pull 받는 상황이 생겼다.
      5. pull을 잘 받으면 내가 로깅해놨던 영수증(package.json)을 이 컴퓨터에다가 보여준다 : npm install
      6. 해당 컴퓨터에서도 인제 node_modules폴더가 생기고, 그 안에 mongoose패키지관련 폴더들이 설치된다.



npm install <package name> --save▲top

  • 참고 링크 : https://docs.npmjs.com/getting-started/using-a-package.json
    • 패키지 설치 전의 package.json 상태
    • { "name": "node_server", "version": "1.0.0", "description": "Node.js Server Practice", "main": "app.js", "scripts": { "test": "node app.js", "start": "node app_fs.js" }, "repository": { "type": "git", "url": "git+https://github.com/geoseong/Node.js-Test.git" }, "keywords": [ "nodejs", "test", "tspark" ], "author": "tspark", "license": "ISC", "bugs": { "url": "https://github.com/geoseong/Node.js-Test/issues" }, "homepage": "https://github.com/geoseong/Node.js-Test#readme" }

    • 패키지 설치 들어간다. 나는 mongoDB를 node.js와 함께 쓰고 싶다. 대표적인 패키지인 mongoose를 깔겠다.
    • C:\Users\TSPark\...\170603_nodejs\nodeServer> npm install mongoose --save

    • 패키지 설치 후의 package.json상태.
      dependencies 라는 속성이 새로 생겼고, 거기에 설치된 패키지인 mongoose가 들어가 있다.
    • { "name": "node_server", "version": "1.0.0", "description": "Node.js Server Practice", "main": "app.js", "scripts": { "test": "node app.js", "start": "node app_fs.js" }, "repository": { "type": "git", "url": "git+https://github.com/geoseong/Node.js-Test.git" }, "keywords": [ "nodejs", "test", "tspark" ], "author": "tspark", "license": "ISC", "bugs": { "url": "https://github.com/geoseong/Node.js-Test/issues" }, "homepage": "https://github.com/geoseong/Node.js-Test#readme", "dependencies": { "mongoose": "^4.11.3" } }




npm outdated & npm update --save▲top

  • 참고 링크 : https://docs.npmjs.com/getting-started/updating-local-packages
    • npmjs docs를 보다가 언젠간 써먹을 것 같은 명령어를 발견했다.
    • 내가 쓰는 패키지가 너무 낡았는지 아닌지 체크하는 명령어 최신버전으로 업뎃시키는 명령이다.
    • 현재 실습중인 패키지는 딱 하나인데다가 가장 최신버전을 이미 깔아서 아무런 응답이 없다. 그래서 예전에 만들어 놓은 패키지에서  npm outdated  를 해 보았다.
    • Location이 npmtest인 이유는, package.json의 name이 npmtest로 되어있기 때문이다.
    • /* package.json */ "dependencies": { "body-parser": "^1.17.1", "express": "^4.15.2", "mysql": "^2.13.0", "mysql2": "^1.2.0", "pg": "^6.1.5", "pg-hstore": "^2.3.2", "sequelize": "^3.30.4" },

      /* cmd */ C:\Developer_Study\...\Practice\myapp> npm outdated Package Current Wanted Latest Location body-parser 1.17.1 1.17.2 1.17.2 npmtest express 4.15.2 4.15.3 4.15.3 npmtest mocha 3.3.0 3.4.2 3.4.2 npmtest mysql2 1.2.0 1.3.6 1.3.6 npmtest pg 6.1.5 6.4.1 7.0.1 npmtest sequelize 3.30.4 3.30.4 4.4.0 npmtest

    • 나는 mysql2 패키지만 최신버전으로 업데이트하고 싶고, 그 내용을 package.json에 반영하려고했는데 안된다? ㅡㅡ;
    • 일단은 내가 아는대로 그냥 npm install --save 해버려서 package.json의 상태를 업뎃시켰다.. ㅋ
      근데 모든 패키지가 다 최신으로 업델줄 알았더니 아까 그냥 update한 mysql2만 반영이 되는거같다.. 기분탓인가? ㅋ
    • 모든 패키지를 다 업뎃하고 package.json에 반영하고 싶다면 npm update --save 하면 된다.
    • C:\Developer_Study\TSPark\NodeJS\Practice\myapp> npm update mysql2 - string_decoder@0.10.31 node_modules\mysql2\node_modules\string_decoder npmtest@1.0.0 C:\Developer_Study\TSPark\NodeJS\Practice\myapp `-- mysql2@1.3.6 //////////// 이 시점에서 package.json 확인해보면 mysql2의 버전은 여전히 ^1.2.0임. /////////// C:\Developer_Study\TSPark\NodeJS\Practice\myapp> npm update mysql2 --save C:\Developer_Study\TSPark\NodeJS\Practice\myapp> npm update --save mysql2 C:\Developer_Study\TSPark\NodeJS\Practice\myapp> npm install --save C:\Developer_Study\TSPark\NodeJS\Practice\myapp> npm outdated Package Current Wanted Latest Location body-parser 1.17.1 1.17.2 1.17.2 npmtest express 4.15.2 4.15.3 4.15.3 npmtest mocha 3.3.0 3.4.2 3.4.2 npmtest pg 6.1.5 6.4.1 7.0.1 npmtest sequelize 3.30.4 3.30.4 4.4.0 npmtest C:\Developer_Study\TSPark\NodeJS\Practice\myapp> npm update --save npmtest@1.0.0 C:\Developer_Study\TSPark\NodeJS\Practice\myapp +-- body-parser@1.17.2 +-- express@4.15.3 +-- mocha@3.4.2 `-- pg@6.4.1 /* package.json */ "dependencies": { "body-parser": "^1.17.2", "express": "^4.15.3", "mocha": "^3.4.2", "mysql": "^2.13.0", "mysql2": "^1.3.6", "pg": "^6.4.1", "pg-hstore": "^2.3.2", "sequelize": "^3.30.4" },



npm uninstall --save <package name>▲top

  • 참고 링크 : https://docs.npmjs.com/getting-started/uninstalling-local-packages
    • 패키지 제거 전의 package.json 상태
    • { "name": "node_server", "version": "1.0.0", "description": "Node.js Server Practice", "main": "app.js", "scripts": { "test": "node app.js", "start": "node app_fs.js" }, "repository": { "type": "git", "url": "git+https://github.com/geoseong/Node.js-Test.git" }, "keywords": [ "nodejs", "test", "tspark" ], "author": "tspark", "license": "ISC", "bugs": { "url": "https://github.com/geoseong/Node.js-Test/issues" }, "homepage": "https://github.com/geoseong/Node.js-Test#readme", "dependencies": { "mongoose": "^4.11.3" } }

    • 패키지 제거 해보면, 엄청난 패키지들이 node_modules에 깔려있었다는걸 깨닫게된다 ㅋ
    • C:\Users\TSPark\Documents\Blog\naver\170603_nodejs\nodeServer> npm uninstall --save mongoose - bluebird@2.10.2 node_modules\bluebird - bson@1.0.4 node_modules\bson - buffer-shims@1.0.0 node_modules\buffer-shims - core-util-is@1.0.2 node_modules\core-util-is - es6-promise@3.2.1 node_modules\es6-promise - hooks-fixed@2.0.0 node_modules\hooks-fixed - inherits@2.0.3 node_modules\inherits - isarray@1.0.0 node_modules\isarray - kareem@1.4.2 node_modules\kareem - lodash@4.17.4 node_modules\lodash - async@2.1.4 node_modules\async - mpath@0.3.0 node_modules\mpath - mpromise@0.5.5 node_modules\mpromise - sliced@0.0.5 node_modules\mquery\node_modules\sliced - ms@2.0.0 node_modules\ms - debug@2.6.8 node_modules\debug - muri@1.2.2 node_modules\muri - process-nextick-args@1.0.7 node_modules\process-nextick-args - regexp-clone@0.0.1 node_modules\regexp-clone - mquery@2.3.1 node_modules\mquery - resolve-from@2.0.0 node_modules\resolve-from - safe-buffer@5.1.1 node_modules\safe-buffer - semver@5.3.0 node_modules\semver - require_optional@1.0.1 node_modules\require_optional - mongodb-core@2.1.11 node_modules\mongodb-core - sliced@1.0.1 node_modules\sliced - string_decoder@1.0.3 node_modules\string_decoder - util-deprecate@1.0.2 node_modules\util-deprecate - readable-stream@2.2.7 node_modules\readable-stream - mongodb@2.2.27 node_modules\mongodb - mongoose@4.11.3 node_modules\mongoose /* package.json */ { "name": "node_server", "version": "1.0.0", "description": "Node.js Server Practice", "main": "app.js", "scripts": { "test": "node app.js", "start": "node app_fs.js" }, "repository": { "type": "git", "url": "git+https://github.com/geoseong/Node.js-Test.git" }, "keywords": [ "nodejs", "test", "tspark" ], "author": "tspark", "license": "ISC", "bugs": { "url": "https://github.com/geoseong/Node.js-Test/issues" }, "homepage": "https://github.com/geoseong/Node.js-Test#readme", "dependencies": {} }


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

Node.js : 간단 웹서버 구동하기 예제  (0) 2017.06.04
Node.js : 설치, npm과 package.json 해부  (0) 2017.06.04

+ Recent posts