웹 프론트엔드 JS 튜토리얼 Node.js 패키지의 프로젝트 디렉터리와 NPM 패키지 Manager_node.js 사용에 대한 자세한 설명

Node.js 패키지의 프로젝트 디렉터리와 NPM 패키지 Manager_node.js 사용에 대한 자세한 설명

May 16, 2016 pm 03:15 PM
javascript node node.js npm 가방

프로젝트 디렉토리

위의 지식을 이해했다면 이제 프로젝트 디렉토리를 완전히 계획할 수 있습니다. 명령줄 프로그램 작성을 예로 들어 보겠습니다. 일반적으로 우리는 명령줄 모드와 API 모드를 모두 제공하며 타사 패키지를 사용하여 코드를 작성합니다. 코드 외에도 완전한 프로그램에는 자체 문서와 테스트 사례도 있어야 합니다. 따라서 표준 프로젝트 디렉터리는 다음과 같습니다.

- /home/user/workspace/node-echo/  # 工程目录
  - bin/             # 存放命令行相关代码
    node-echo
  + doc/             # 存放文档
  - lib/             # 存放API相关代码
    echo.js
  - node_modules/         # 存放三方包
    + argv/
  + tests/            # 存放测试用例
  package.json          # 元数据文件
  README.md            # 说明文件
로그인 후 복사

일부 파일의 내용은 다음과 같습니다.

/* bin/node-echo */
var argv = require('argv'),
  echo = require('../lib/echo');
console.log(echo(argv.join(' ')));

/* lib/echo.js */
module.exports = function (message) {
  return message;
};

/* package.json */
{
  "name": "node-echo",
  "main": "./lib/echo.js"
}

로그인 후 복사

위의 예에서는 다양한 유형의 파일이 카테고리에 저장되고, 모듈은 node_moudles 디렉토리를 통해 타사 패키지 이름을 사용하여 직접 로드됩니다. 또한 package.json을 정의한 후 node-echo 디렉터리도 패키지로 사용할 수 있습니다.

NPM

NPM은 NodeJS와 함께 설치되는 패키지 관리 도구로 NodeJS 코드 배포의 많은 문제를 해결할 수 있습니다.

  • 사용자가 로컬 사용을 위해 NPM 서버에서 다른 사람이 작성한 타사 패키지를 다운로드할 수 있도록 허용합니다.
  • 사용자가 로컬 사용을 위해 NPM 서버에서 다른 사람이 작성한 명령줄 프로그램을 다운로드하고 설치할 수 있습니다.
  • 사용자가 다른 사람이 사용할 수 있도록 NPM 서버에 작성한 패키지나 명령줄 프로그램을 업로드할 수 있습니다.

보시다시피 NPM은 NodeJS 개발자와 사용자가 서로 소통할 수 있는 NodeJS 생태계를 구축했습니다. 다음은 이러한 세 가지 시나리오에서 NPM을 사용하는 방법을 설명합니다.

타사 패키지 다운로드
타사 패키지를 사용해야 하는 경우 먼저 어떤 패키지를 사용할 수 있는지 알아야 합니다. npmjs.org는 패키지 이름을 기준으로 검색할 수 있는 검색창을 제공하지만, 사용하려는 타사 패키지 이름이 확실하지 않은 경우 Baidu에 문의하세요. 위 예의 argv와 같은 패키지 이름을 알고 나면 프로젝트 디렉터리에서 터미널을 열고 다음 명령을 사용하여 타사 패키지를 다운로드할 수 있습니다.

$ npm install argv
...
argv@0.0.2 node_modules\argv
로그인 후 복사

다운로드 후 argv 패키지는 프로젝트 디렉터리 아래 node_modules 디렉터리에 배치되므로 타사 패키지 경로를 지정하지 않고 코드에 require('argv')만 추가하면 됩니다.

위 명령은 기본적으로 최신 버전의 타사 패키지를 다운로드합니다. 특정 버전을 다운로드하려면 패키지 이름 뒤에 @을 추가하면 됩니다. 다음 명령을 통해 argv 중 1개를 가져옵니다.

$ npm install argv@0.0.1
...
argv@0.0.1 node_modules\argv
로그인 후 복사

타사 패키지를 많이 사용하는 경우 터미널에서 하나의 명령으로 각 패키지를 설치하는 것은 너무 번거로울 것입니다. 따라서 NPM은 타사 패키지 종속성을 선언할 수 있도록 package.json의 필드를 확장했습니다. 따라서 위 예의 package.json을 다음과 같이 다시 작성할 수 있습니다.

{
  "name": "node-echo",
  "main": "./lib/echo.js",
  "dependencies": {
    "argv": "0.0.2"
  }
}
로그인 후 복사

이런 방식으로 처리한 후 npm install 명령을 사용하여 프로젝트 디렉터리에 타사 패키지를 일괄 설치할 수 있습니다. 더 중요한 것은 향후 node-echo도 NPM 서버에 업로드되고 다른 사람들이 이 패키지를 다운로드할 때 NPM은 패키지에 선언된 타사 패키지 종속성을 기반으로 추가 종속 타사 패키지를 자동으로 다운로드한다는 것입니다. 예를 들어 npm install node-echo 명령을 사용하면 NPM은 자동으로 다음 디렉터리 구조를 생성합니다.

- project/
  - node_modules/
    - node-echo/
      - node_modules/
        + argv/
      ...
  ...
로그인 후 복사

이런 방식으로 사용자는 직접 사용하는 타사 패키지에만 신경 쓰면 되며 모든 패키지 자체의 종속성을 해결할 필요는 없습니다.

명령줄 프로그램 설치
NPM 서비스에서 명령줄 프로그램을 다운로드하고 설치하는 방법은 타사 패키지와 유사합니다. 예를 들어 위 예의 node-echo는 명령줄 사용 방법을 제공합니다. node-echo가 관련 package.json 필드를 구성한 경우 사용자는 다음 명령만 사용하여 프로그램을 설치하면 됩니다.

$ npm install node-echo -g
로그인 후 복사

파라미터의 -g는 전역 설치를 의미하므로 node-echo는 기본적으로 다음 위치에 설치되며, NPM은 Linux 시스템에서 필요한 소프트링크 파일이나 Windows 시스템에서 필요한 .cmd 파일을 자동으로 생성합니다.

- /usr/local/        # Linux系统下
  - lib/node_modules/
    + node-echo/
    ...
  - bin/
    node-echo
    ...
  ...

- %APPDATA%\npm\      # Windows系统下
  - node_modules\
    + node-echo\
    ...
  node-echo.cmd
  ...

로그인 후 복사

우편번호
처음으로 코드를 게시하려면 NPM을 사용하기 전에 계정을 등록해야 합니다. 터미널에서 npm adduser를 실행한 후 프롬프트를 따릅니다. 계정이 설정된 후에는 package.json 파일을 편집하고 NPM에 대한 필수 필드를 추가해야 합니다. 위의 node-echo 예시에 따라 package.json에 필요한 필드는 다음과 같습니다.

{
  "name": "node-echo",      # 包名,在NPM服务器上须要保持唯一
  "version": "1.0.0",      # 当前版本号
  "dependencies": {       # 三方包依赖,需要指定包名和版本号
    "argv": "0.0.2"
   },
  "main": "./lib/echo.js",    # 入口模块位置
  "bin" : {
    "node-echo": "./bin/node-echo"   # 命令行程序名和主模块位置
  }
}
로그인 후 복사

그런 다음 package.json이 있는 디렉터리에서 npm 게시를 실행하여 코드를 게시할 수 있습니다.

버전 번호
NPM을 사용하여 코드를 다운로드하고 게시하면 버전 번호를 알게 됩니다. NPM은 의미론적 버전 번호를 사용하여 코드를 관리합니다.

의미론적 버전 번호는 X.Y.Z의 세 자리로 구분되며 각각 메이저 버전 번호, 마이너 버전 번호, 패치 버전 번호를 나타냅니다. 코드가 변경되면 다음 원칙에 따라 버전 번호가 업데이트됩니다.

+ 버그만 수정했다면 Z비트 업데이트가 필요합니다.

+ 새로운 기능이 추가되었지만 이전 버전과 호환되는 경우 Y 비트를 업데이트해야 합니다.

+ 큰 변경 사항이 있는 경우 이전 버전과 호환되지 않으며 X 비트를 업데이트해야 합니다.
버전 번호에 이러한 보장이 있으면 타사 패키지 종속성을 선언할 때 고정된 버전 번호에 의존하는 것 외에도 특정 버전 번호 범위에 의존할 수도 있습니다. 예를 들어, "argv": "0.0.x"는 0.0.x 시리즈의 최신 버전 argv에 의존한다는 의미입니다. NPM에서 지원하는 모든 버전 번호 범위 지정 방법은 공식 문서를 참조하세요.

영리하게 행동하세요
이 장에서 소개한 부분 외에도 NPM은 많은 기능을 제공하며 package.json에는 기타 유용한 필드가 많이 있습니다. npmjs.org/doc/에서 공식 문서를 보는 것 외에도 다음은 몇 가지 일반적인 NPM 명령입니다.

NPM은 설치, 게시 등 다양한 명령을 제공합니다. 모든 명령을 보려면 npm help를 사용하세요.

  • npm help install과 같은 명령에 대한 자세한 도움말을 보려면 npm help를 사용하세요.
  • package.json이 있는 디렉터리에서 npm install . -g를 사용하여 현재 명령줄 프로그램을 로컬에 먼저 설치하세요. 이는 출시 전 로컬 테스트에 사용할 수 있습니다.
  • npm update 를 사용하여 현재 디렉터리의 node_modules 하위 디렉터리에 있는 해당 모듈을 최신 버전으로 업데이트하세요.
  • npm update -g를 사용하여 전역적으로 설치된 해당 명령줄 프로그램을 최신 버전으로 업데이트하세요.
  • npm 캐시 클리어를 사용하면 동일한 버전 번호를 사용하여 새 버전의 코드를 릴리스하는 사람들을 처리하는 데 사용되는 NPM 로컬 캐시를 지울 수 있습니다.
  • npm unpublish @을 사용하여 게시한 코드 버전을 게시 취소하세요.
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 Dec 17, 2023 pm 02:54 PM

WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

WebSocket 및 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 WebSocket 및 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 Dec 17, 2023 pm 05:30 PM

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 Dec 17, 2023 am 09:39 AM

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 Dec 17, 2023 pm 12:09 PM

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면

PI 노드 교육 : PI 노드 란 무엇입니까? Pi 노드를 설치하고 설정하는 방법은 무엇입니까? PI 노드 교육 : PI 노드 란 무엇입니까? Pi 노드를 설치하고 설정하는 방법은 무엇입니까? Mar 05, 2025 pm 05:57 PM

Pinetwork 노드에 대한 자세한 설명 및 설치 안내서이 기사에서는 Pinetwork Ecosystem을 자세히 소개합니다. Pi 노드, Pinetwork 생태계의 주요 역할을 수행하고 설치 및 구성을위한 전체 단계를 제공합니다. Pinetwork 블록 체인 테스트 네트워크가 출시 된 후, PI 노드는 다가오는 주요 네트워크 릴리스를 준비하여 테스트에 적극적으로 참여하는 많은 개척자들의 중요한 부분이되었습니다. 아직 Pinetwork를 모른다면 Picoin이 무엇인지 참조하십시오. 리스팅 가격은 얼마입니까? PI 사용, 광업 및 보안 분석. Pinetwork 란 무엇입니까? Pinetwork 프로젝트는 2019 년에 시작되었으며 독점적 인 Cryptocurrency Pi Coin을 소유하고 있습니다. 이 프로젝트는 모든 사람이 참여할 수있는 사람을 만드는 것을 목표로합니다.

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

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

JavaScript와 WebSocket: 효율적인 실시간 일기예보 시스템 구축 JavaScript와 WebSocket: 효율적인 실시간 일기예보 시스템 구축 Dec 17, 2023 pm 05:13 PM

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리

간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 Jan 05, 2024 pm 06:08 PM

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

See all articles