개발하자

Packages and Modules (NPM) 본문

카테고리 없음

Packages and Modules (NPM)

hyesun 2022. 12. 2. 14:28

Public Npm Registry

Database of Javascript Packages
  • 각각은 소프트웨어와 메타데이터로 구성 됨
  • packages and node modules를 포함

Packages and Modules

1. Packages

package.json에서 설명된 파일 또는 디렉토리
    • npm registry에 발행되기 위해서는 package.json이 있어야만 함
    • unscoped 또는 scoped 할수 있음 (사용자 또는 organization의 범위를 지정할 수 있다는 의미인듯)
    • scoped package는 private 또는 public을 설정할 수 있음
    • package formats
      1. package.json 파일을 포함해야 함
      2. (1)을 포함한 gzip으로 압축된 tarball
      3. (2)의 url
      4. (3)과 함께 registry에 게시된 <name>@<version>
      5. (4)를 가리키는 <name>@<tag>
      6. <name>은 (5)를 만족하는 최신태그 가짐
      7. git url (url 마지막에 #commit-ish 추가)
        • ex) git://github.com/user/project.git#commit-ish

 

      

2. Modules

Node.js에서 require() function으로 로드 할 수 있는 node_modules에 있는 file이나 directory

 


Scopes

user 계정, organization 을 생성할때 그에 맞는 scope가 부여 됨
  • package와 연관된 namespace의 역할을 할 수 있음
  • 같은 이름의 package를 만들 수 있음 (scope가 있기 때문에 충돌이 없음)
@npm/package-name
@npmcorp/package-name

 


Public Packages

누구나 다운로드하여 사용할 수 있는 패키지
  • Unscoped
    • global public registry namespace 에 존재함
    • package-name 으로 참조 됨
  • Scoped
    • 사용자, organization에 속함
    • package.json 파일에 dependency로 포함 될 때 사용자명 or organization 이름이 앞에 있어야
      • ex) @username/package-name 

 

 

Private Packages

선택된 사용자들만 접근할 수 있는 패키지
  • 선택된 사용자들에게만 있는 host code로 npm registry를 사용
  • 항상 scoped  
  • User-scoped (유료)
    • read 또는 read/write 권한을 받은 collaborator만 접근 가능
  • Organization-scoped (유료)
    • read 또는 read/write 권한을 받은 team만 접근 가능
  • private registry를 배포하여 사용하면 무료로 사용 가능
 

A lightweight Node.js private proxy registry | Verdaccio

A lightweight Node.js private proxy registry

verdaccio.org


Creating and Publishing Unscoped Public Packages

  • 평소에 프로젝트 하는 것처럼 git을 설정하고 package 요구사항을 확인 후에 명령어로 배포
npm publish

 

 


참고자료

 

 

https://docs.npmjs.com/packages-and-modules/introduction-to-packages-and-modules

 

Introduction to packages and modules | npm Docs

Documentation for the npm registry, website, and command-line interface

docs.npmjs.com

https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages

 

Creating and publishing unscoped public packages | npm Docs

Documentation for the npm registry, website, and command-line interface

docs.npmjs.com

 

Comments