웹 프론트엔드 JS 튜토리얼 Node.js에 대한 자세한 소개 packages_node.js

Node.js에 대한 자세한 소개 packages_node.js

May 16, 2016 pm 04:20 PM
node.js 가방

Node.js 언어에서는 패키지와 모듈 사이에 본질적인 차이가 없습니다. 패키지는 모듈을 기반으로 한 더 깊은 추상화입니다. 패키지는 독립적인 기능을 캡슐화하고 게시, 업데이트, 종속성 관리 및 버전 제어 수행에 사용됩니다. Node.js는 CommonJS 사양에 따라 패키지 메커니즘을 구현하며, 패키지 게시 및 획득 요구 사항을 해결하기 위해 npm이 개발되었습니다.

Node.js의 패키지는 JSON 형식의 패키지 설명 파일 package.json이 포함된 디렉터리입니다. Node.js의 패키지는 기본적으로 CommonJS 스펙을 따르므로 다음과 같은 특징을 가지고 있습니다.

CommonJS 사양에 정의된 패키지 기능:

1) 최상위 디렉터리에는 package.json 파일이 포함되어 있습니다.
2) bin 디렉토리는 바이너리 파일을 저장합니다.
3) lib 디렉토리는 JavaScript 파일을 저장합니다.
4) 문서 디렉토리는 문서를 저장합니다.
5) 테스트 디렉터리에는 단위 테스트가 저장됩니다.

Node.js 모듈과 파일은 일대일 대응을 갖습니다. 파일은 JavaScript 소스 파일이나 바이너리 파일일 뿐만 아니라 디렉터리일 수도 있습니다. 가장 간단한 패키지는 디렉토리 모듈입니다.

Node.js 패키지는 일반적으로 모듈을 기반으로 더 높은 수준의 추상화를 제공하는 모듈 모음으로, 일부 고정 인터페이스를 제공하는 함수 라이브러리와 동일합니다.
package.json을 사용자 정의하면 릴리스용 패키지를 더욱 복잡하고 완전하며 규정을 준수하는 패키지로 만들 수 있습니다.

Node.js는 패키지를 호출할 때 먼저 패키지에 있는 package.json 파일의 메인 필드를 확인하고, package.json 파일의 메인 필드가 그렇지 않은 경우 이를 패키지의 인터페이스 모듈로 사용합니다. 존재하는 경우 Node.js는 패키지의 인터페이스로 index.js 또는 index.node를 찾으려고 시도합니다.

package.json 파일은 CommonJS 사양에서 패키지를 설명하는 데 사용되는 파일입니다. 사양을 완전히 준수하는 package.json 파일에는 다음 필드가 포함되어야 합니다.
1) 이름: 패키지 이름. 패키지 이름은 고유하며 소문자, 숫자, 밑줄로 구성되며 공백을 포함할 수 없습니다.
2) 설명: 패키지 설명입니다. 패키지에 대해 간략하게 설명해주세요.
3) 버전: 버전 번호. "의미적 버전 식별" 사양을 충족하는 버전 문자열입니다.
4) 키워드: 일반적으로 검색에 사용되는 키워드 배열입니다.
5) 유지관리자: 유지관리자의 배열입니다. 각 요소에는 이름, 이메일(선택 사항), 웹(선택 사항) 필드가 포함됩니다.
6) 기여자: 기여자의 배열입니다. 형식은 관리자 배열과 동일합니다. 패키지 작성자는 contributors 배열의 첫 번째 요소여야 합니다.
7) 버그: 버그를 제출할 주소로 웹사이트나 이메일 주소를 사용할 수 있습니다.
8) 라이센스: 라이센스 배열. 각 요소에는 유형(라이센스 이름) 및 URL(라이센스 텍스트에 대한 주소 링크) 필드가 포함되어야 합니다.
9) 저장소: 창고 호스팅 주소의 배열입니다. 각 요소에는 유형(Git과 같은 웨어하우스 유형), url(웨어하우스 주소) 및 경로(웨어하우스 관련 경로, 선택 사항) 필드가 포함되어야 합니다.
10) 종속성: 패키지 종속성. 패키지 이름과 버전 번호로 구성된 연관 배열입니다.

참고: "의미적 버전 식별" 사양은 해외에서 제안된 일련의 버전 명명 사양입니다. 원래 목적은 다양한 버전 번호 크기 비교 문제를 해결하는 것이었습니다. 현재 많은 패키지 관리 시스템에서 채택되고 있습니다.

다음은 CommonJS 사양을 완벽하게 준수하는 package.json 예시입니다.

코드 복사 코드는 다음과 같습니다.

{  
  "이름": "테스트패키지", 
  "description": "CommonJS용 내 패키지.", 
  "버전": "0.1.0", 
  "키워드": [ 
     "테스트패키지", 
     "liq" 
  ],  
  "관리자": [ 
     { 
        "이름": "liq", 
        "이메일": "liq@hotmail.com", 
     } 
  ], 
  "기여자": [ 
     { 
        "이름": "liq", 
        "웹": "http://blog.csdn.net/chszs" 
     } 
  ], 
  "버그": { 
     "mail": "liq@hotmail.com", 
     "웹": "http://blog.csdn.net/chszs" 
  }, 
  "라이센스": [ 
     { 
        "type": "Apache 라이센스 v2", 
        "url": "http://www.apache.org/licenses/apache2.html" 
     } 
  ], 
  "저장소": [ 
     { 
        "유형": "git", 
        "url": "http://github.com/chszs/packagetest.git" 
     } 
  ], 
  "종속성": {  
     "webkit": "1.2", 
     "ssl": {  
        "gnutls": ["1.0", "2.0"], 
        "openssl": "0.9.8" 
     } 
  } 
}
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Node의 메모리 제어에 관한 기사 Node의 메모리 제어에 관한 기사 Apr 26, 2023 pm 05:37 PM

Non-Blocking, Event-Driven 기반으로 구축된 Node 서비스는 메모리 소모가 적다는 장점이 있으며, 대규모 네트워크 요청을 처리하는데 매우 적합합니다. 대규모 요청을 전제로 '메모리 제어'와 관련된 문제를 고려해야 합니다. 1. V8의 가비지 수집 메커니즘과 메모리 제한 Js는 가비지 수집 기계에 의해 제어됩니다.

Node V8 엔진의 메모리와 GC에 대한 자세한 그래픽 설명 Node V8 엔진의 메모리와 GC에 대한 자세한 그래픽 설명 Mar 29, 2023 pm 06:02 PM

이 기사는 NodeJS V8 엔진의 메모리 및 가비지 수집기(GC)에 대한 심층적인 이해를 제공할 것입니다. 도움이 되기를 바랍니다.

Node의 파일 모듈에 대해 자세히 이야기해 보겠습니다. Node의 파일 모듈에 대해 자세히 이야기해 보겠습니다. Apr 24, 2023 pm 05:49 PM

파일 모듈은 파일 읽기/쓰기/열기/닫기/삭제 추가 등과 같은 기본 파일 작업을 캡슐화한 것입니다. 파일 모듈의 가장 큰 특징은 모든 메소드가 **동기** 및 ** 두 가지 버전을 제공한다는 것입니다. 비동기**, sync 접미사가 있는 메서드는 모두 동기화 메서드이고, 없는 메서드는 모두 이기종 메서드입니다.

최고의 Node.js Docker 이미지를 선택하는 방법에 대해 이야기해 볼까요? 최고의 Node.js Docker 이미지를 선택하는 방법에 대해 이야기해 볼까요? Dec 13, 2022 pm 08:00 PM

Node용 Docker 이미지를 선택하는 것은 사소한 문제처럼 보일 수 있지만 이미지의 크기와 잠재적인 취약점은 CI/CD 프로세스와 보안에 상당한 영향을 미칠 수 있습니다. 그렇다면 최고의 Node.js Docker 이미지를 어떻게 선택합니까?

Node의 이벤트 루프에 대해 이야기해 봅시다. Node의 이벤트 루프에 대해 이야기해 봅시다. Apr 11, 2023 pm 07:08 PM

이벤트 루프는 Node.js의 기본 부분이며 메인 스레드가 차단되지 않도록 하여 비동기 프로그래밍을 가능하게 합니다. 이벤트 루프를 이해하는 것은 효율적인 애플리케이션을 구축하는 데 중요합니다. 다음 기사는 Node.js의 이벤트 루프에 대한 심층적인 이해를 제공할 것입니다. 도움이 되기를 바랍니다!

노드가 npm 명령을 사용할 수 없으면 어떻게 해야 합니까? 노드가 npm 명령을 사용할 수 없으면 어떻게 해야 합니까? Feb 08, 2023 am 10:09 AM

노드가 npm 명령을 사용할 수 없는 이유는 환경 변수가 올바르게 구성되지 않았기 때문입니다. 해결 방법은 다음과 같습니다. 1. "시스템 속성"을 엽니다. 2. "환경 변수" -> "시스템 변수"를 찾은 다음 환경을 편집합니다. 3. nodejs 폴더의 위치를 ​​찾습니다. 4. "확인"을 클릭합니다.

노드의 버퍼에 대해 자세히 알아보기 노드의 버퍼에 대해 자세히 알아보기 Apr 25, 2023 pm 07:49 PM

초기에 JS는 브라우저 측에서만 실행되었습니다. 유니코드로 인코딩된 문자열은 처리하기 쉬웠지만 바이너리 및 유니코드가 아닌 인코딩된 문자열을 처리하는 것은 어려웠습니다. 그리고 바이너리는 컴퓨터의 가장 낮은 데이터 형식인 비디오/오디오/프로그램/네트워크 패키지입니다.

프로그래밍 효율성 향상: Golang 패키지 사용 최적화 프로그래밍 효율성 향상: Golang 패키지 사용 최적화 Jan 16, 2024 am 10:46 AM

인공 지능과 클라우드 컴퓨팅이 계속 발전함에 따라 소프트웨어 개발은 ​​오늘날 비즈니스 세계에서 중요한 부분이 되었습니다. 효율적이고 확장 가능한 프로그래밍 언어인 Golang은 소프트웨어 개발자들 사이에서 점점 더 선호되고 있습니다. 하지만 Golang을 사용하더라도 개발자는 항상 프로그램 실행 효율성의 기준을 지켜야 합니다. 이 기사에서는 Golang 패키지 사용을 최적화하여 프로그래밍 효율성을 향상시키는 방법에 중점을 둘 것입니다. 그리고 독자들이 이를 더 잘 이해할 수 있도록 코드 예제를 제공할 것입니다.

See all articles