[Node.js] 🤷♂️ npm(Node Package Manager)이 뭐길래?
🤷♂️ npm?
npm
은 Node Package Manager의 약어로 JavaScript
를 위한 패키지 관리자입니다. JavaScript Runtime 환경의 Node.js
의 그 Node
입니다.
세계 최대의 소프트웨어 창고
npm
은 세계 최대의 소프트웨어 창고로 80만개가 넘는 코드 패키지를 가지고 있습니다. 오픈소스 개발자들은 npm
을 이용하여 그들의 소프트웨어를 공유합니다. 많은 회사들도 npm
을 이용하여 사적인 개발을 진행하곤 합니다.
SO EAAAAAASY
npm
은 자유롭게 사용 가능합니다. 퍼블릭한 소프트웨어 패키지들을 어떠한 가입이나 로그인 없이 모두 다운로드할 수 있습니다
CLI 이용
npm
은 소프트웨어를 다운로드하거나 설치하기 위해 사용되곤하는 CLI
(Command Line Client)를 포함합니다.
Windows 예시
C:\>npm install <package>
Mac OS 예시
>npm install <package>
npm 설치
npm
은 Node.js
와 함께 설치됩니다.
소프트웨어 패키지 매니저
npm
(Node Package Manager)은 npm
이 처음에는 Node.js
를 위한 패키지 매니저로 만들어졌기 때문에 이런 이름을 가지게 된 것입니다. 모든 npm
패키지들은 package.json
이라 불리는 파일안에 정의됩니다. package.json
의 내용은 항상 JSON
으로 쓰여져야합니다. 적어도 두 개의 필드 name
(프로젝트의 이름)과 version
은 항상 존재해야 합니다.
{
"name" : "foo",
"version" : "1.2.3",
"description" : "A package for fooing things",
"main" : "foo.js",
"keywords" : ["foo", "fool", "foolish"],
"author" : "John Doe",
"licence" : "ISC"
}
Dependencies(의존성) 관리하기
npm
은 의존성을 관리할 수 있습니다. npm
에서 의존성이란 한 마디로 해당 프로젝트가 돌아가기 위해 필요한 npm
패키지들입니다. npm
은 하나의 커맨드로 프로젝트의 모든 의존성을 설치할 수 있습니다. 의존성은 또한 package.json
에 정의되어 있습니다.
당신의 소프트웨어를 공유해봅시다.
만약 당신의 소프트웨어를 npm
레지스트리에 공유하고 싶다면 https://www.npmjs.com/에 가입하면 됩니다.
패키지 퍼블리싱하기
package.json
파일만 있다면 어떤 폴더라도 퍼블리싱할 수 있습니다.
npm이 깔려있는 지 확인합니다.
C:\>npm
npm에 로그인이 되어있는 지 확인합니다.
C:\>npm whoami
만약 안되어 있다면, 로그인 할 수 있습니다
C:\>npm login
Username: <your username>
Password: <your password>
당신의 프로젝트로 위치를 옮겨서 당신의 프로젝트를 퍼블리싱하세요
C:\Users\myuser>cd myproject
C:\Users\myuser\myproject>npm publish
Written with StackEdit.
'Web > JavaScript' 카테고리의 다른 글
[JavaScript] ES6, ES8, ES2017, ECMAScript 이게 다 뭐시여...? (1) | 2019.05.30 |
---|---|
[Web] 🍪 Cookie와 Web Storage (0) | 2019.03.08 |
[JavaScript] 변수의 범위(variable scope) (0) | 2019.02.11 |
[Node.js] 🤷♂️ Node.js란 무엇인가? (0) | 2019.02.10 |
자바스크립트 엔진(JavaScript Engine)과 자바스크립트 런타임(Javascript Runtime)의 차이 (0) | 2019.02.10 |
댓글
이 글 공유하기
다른 글
-
[JavaScript] ES6, ES8, ES2017, ECMAScript 이게 다 뭐시여...?
[JavaScript] ES6, ES8, ES2017, ECMAScript 이게 다 뭐시여...?
2019.05.30 -
[Web] 🍪 Cookie와 Web Storage
[Web] 🍪 Cookie와 Web Storage
2019.03.08 -
[JavaScript] 변수의 범위(variable scope)
[JavaScript] 변수의 범위(variable scope)
2019.02.11 -
[Node.js] 🤷♂️ Node.js란 무엇인가?
[Node.js] 🤷♂️ Node.js란 무엇인가?
2019.02.10